PyDev

2011-04-08 6 views
8

में निर्भर परियोजना से मॉड्यूल आयात नहीं कर सकता है, शायद मैं वास्तव में यहाँ कुछ गूंगा कर रहा हूं, लेकिन यह मुझे पागल कर रहा है।PyDev

मेरे पास एक्लिप्स में दो पायडेव परियोजनाएं हैं। एक परियोजना, 'विश्लेषण' दूसरे पर निर्भर करता है, 'पिकॉमॉन'। जब मैं विश्लेषण के लिए प्रोजेक्ट संदर्भों को देखता हूं, तो मुझे 100% यकीन है, PyCommon की जांच की जाती है, और जब मैं विश्लेषण से PyCommon में तत्वों का संदर्भ देता हूं तो स्वचालित आयात/कोड पूर्णता कार्य करता है।

मैं विश्लेषण में एक मॉड्यूल लिखने/चलाने की कोशिश कर रहा हूं। मॉड्यूल fhb/विश्लेषण/log_parsers.py है।

मैं PyCommon प्रोजेक्ट में fhb/pycommon/type/order_status से ऑर्डरस्टैटस तत्व आयात करने का प्रयास कर रहा हूं। तो, मेरी इंपोर्ट स्टेटमेंट

PyDev 'fhb.pycommon.types.order_status आयात OrderStatus से'

स्पष्ट रूप से जानता है, जहां इस वजह से है कि इंपोर्ट स्टेटमेंट एक QuickFix सुधार पर PyDev द्वारा स्वचालित रूप से लिखा गया था है। फिर भी, जब मैं log_parsers.py में मुख्य कार्य चलाने का प्रयास है, मैं इस मिल:

Traceback (most recent call last): File "/workspace/Analysis/src/fhb/analysis/log_parsers.py", line 6, in from fhb.pycommon.types.order_type import OrderType ImportError: No module named pycommon.types.order_status

इन पैकेजों के सभी एक उचित स्रोत फ़ोल्डर ('src') प्रत्येक परियोजना में चल रहा है।

इसके अलावा, भले ही विश्लेषण बिल्कुल जब मैं विश्लेषण के गुणों में PyDev-PYTHONPATH के नीचे देखें संदर्भ के लिए PyCommon, सेट किया गया है, केवल विश्लेषण के अपने स्रोत फ़ोल्डर 'स्रोत फ़ोल्डर' टैब के अंतर्गत प्रकट होता है, और यह केवल परियोजना मैं अगर मैं देखना है 'स्रोत जोड़ें फ़ोल्डर' पर क्लिक करें

उत्तर

0

मुझे विश्वास है कि आपको PythonPathH में PyCommon का पथ जोड़ना होगा या नहीं, यह आयात करने के लिए वास्तविक मॉड्यूल नहीं ढूंढ पाएगा।

3

जहां समस्या है की जाँच करने के लिए सबसे अच्छा तरीका डालकर है:

import sys 
print('\n'.join(sorted(sys.path))) 

अपने कार्यक्रम के प्रवेश में देखने के लिए अगर PYTHONPATH ठीक से आप उम्मीद के रूप में स्थापित कर रहा है ...

देखें: Importing from another project in pydev पर संरचना के बारे में विवरण के बारे में विवरण के लिए (सबसे खराब मामले में, यदि यह पहले से कॉन्फ़िगर किया गया है, तो यह एक पीडीडीव कैश बग हो सकता है - ग्रहण को पुनरारंभ करना इस मामले में ठीक करेगा - अन्यथा, यह शायद कुछ गलत कॉन्फ़िगरेशन है)।

+0

ग्रहण को पुनरारंभ करने के लिए इस मुद्दे को हल किया, धन्यवाद! – dimo414

2

मुझे लगता है कि pydev पैकेज नाम "fhb" की जड़ के पास समान पैकेज नामों में परेशानी हो रही है। मुझे भी यही तकलीफ़ है। परियोजनाओं में से किसी एक में पैकेज को हटाने से मुझे समस्या के बिना किसी अन्य को संदर्भित करने दें।

मैं समस्या का समाधान नहीं कर सका, लेकिन मुझे लगता है कि इसे पैकेज के मूल फ़ोल्डर के साथ ही करना है।

+0

यह मेरे लिए भी समस्या थी इसलिए धन्यवाद, लेकिन यह वास्तव में मुझे कोई समझ नहीं आता ... मैं कई परियोजनाओं के साथ काम करता हूं जहां मैं बेस पैकेज को चारों ओर समान बनाना चाहता था, और इस तरह मैं ऐसा नहीं कर सकता । तब से आपके पास कोई भाग्य तय हो रहा है? –

0

आपकी समस्या आपके कुछ मॉड्यूल फ़ोल्डरों से __init__.py अनुपलब्ध हो सकती है।

उदाहरण के लिए, fhb.pycommon.types.order_status में order_status.py से ऑर्डरस्टैटस का उपयोग करने के लिए, आपको fhb, fhb/pycommon, और fhb/pycommon/प्रकार में एक (संभवतः खाली) __init__.py फ़ाइल होना चाहिए ।

यह भी ध्यान दें कि fylb/विश्लेषण/log_parsers.py के लिए सही ढंग से काम करने के लिए पिलिंट के लिए, आपको fhb/विश्लेषण में __init__.py भी होना चाहिए।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^