2017-08-17 23 views
7

मैं एक उपयोगिता फ़ाइल आयात करने की कोशिश कर रहा हूं लेकिन जब मैं एक स्क्रिप्ट के माध्यम से कोड चलाता हूं तो केवल एक अजीब त्रुटि में चल रहा हूं।आयात त्रुटि: कोई मॉड्यूल नाम नहीं है

जब मैं test.py

स्थान चलाएँ: /home/amourav/Python/proj/test.py

कोड:

import os 
os.chdir(r'/home/amourav/Python/') 
print os.listdir(os.getcwd()) 
print os.getcwd() 
from UTILS import * 

उत्पादन होता है:

['UTILS_local.py','UTILS.py', 'proj', 'UTILS.pyc']

/home/amourav/Python

Traceback (most recent call last): File "UNET_2D_AUG17.py", line 11, in from UTILS import * ImportError: No module named UTILS

लेकिन जब मैं बैश टर्मिनल के माध्यम से कोड चलाता हूं, तो यह ठीक काम करता है

bash-4.1$ python 
>>> import os 
>>> os.chdir(r'/home/amourav/Python/') 
>>> print os.listdir(os.getcwd()) 

['UTILS_local.py','UTILS.py', 'proj', 'UTILS.pyc']

>>> from UTILS import * 

blah blah -everything is fine- blah blah

मैं अजगर 2.7.10 चल रहा हूँ एक Linux मशीन पर

उत्तर

4

आपका परियोजना इस तरह दिखता है:

+- proj 
| +- test.py 
+- UTILS.py 
+- ... 

आप Utils आयात करना चाहते हैं .py, आप चुन सकते हैं:

(1)

import os, sys 
sys.path.append(os.path.join(os.path.dirname(__file__), "..")) 
# now you may get a problem with what I wrote below. 
import UTILS 

(2) एक पैकेज बनाने (आयात केवल)

Python 
+- proj 
| +- test.py 
| +- __init__.py 
+- UTILS.py 
+- __init__.py 
+- ... 

अब, आप test.py अगर में यह लिख सकते हैं test.py में sys.path के लिए पथ को जोड़ने आप import Python.proj.test:

from .. import UTILS 

गलत जवाब

मुझे यह त्रुटि कई बार मिली थी। मुझे लगता है, मुझे याद है।

फिक्स: test.py चलाएं, ./test.py चलाएं।

यदि आप sys.path पर एक नज़र रखते हैं, तो आप देख सकते हैं कि एक खाली स्ट्रिंग है जिसमें फ़ाइल निष्पादित पथ का पथ है।

  • test.py''sys.path को
  • ./test.py'.'sys.path आयात केवल "." से किया जा सकता है के लिए

कहते हैं कहते हैं, मुझे लगता है।

+3

क्या आप विस्तारित कर सकते हैं कि ऐसा क्यों होता है? –

+0

^^ मैं इसे पुन: पेश करने की कोशिश कर रहा हूं लेकिन मैं असफल हूं। पायथन 2.7.12 – User

+0

सोचा कि यह एक सेकंड के लिए काम किया लेकिन नहीं। python ./test.py -> आयात त्रुटि –

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