Вот моя структура файла:Python ошибка импорта из xx.xx импорта *: нет модуль с именем
-test
--m1
---t.py
--m2
---__init__.py
---utils.py
t.py:
from m2.utils import *
print foo()
utils.py:
def foo():
return 5
__init__.py пусто
Работает в моем местном сообществе жающая среда (MacOS Sierra питон 2.7.10):
[email protected]:~/GitHub/PaperReplication/test$ python m1/t.py
5
[email protected]:~/GitHub/PaperReplication/test$ echo $PYTHONPATH
:/Users/Shangtong/DevelopmentKits/libsvm-3.20/python
Однако он не работает на моем сервере (Python 2.7.8):
[[email protected] test]$ python m1/t.py
Traceback (most recent call last):
File "m1/t.py", line 1, in <module>
from m2.utils import *
ImportError: No module named m2.utils
[[email protected] test]$ ls -al
total 16
drwxrwxr-x 4 shangton shangton 4096 Jan 28 09:10 .
drwx------ 4 shangton shangton 4096 Jan 28 10:09 ..
drwxrwxr-x 2 shangton shangton 4096 Jan 28 09:12 m1
drwxrwxr-x 2 shangton shangton 4096 Jan 28 10:09 m2
[[email protected] test]$ echo $PYTHONPATH
/global/software/python/Python-2.7.8/lib/python2.7/site-packages/:/global/software/python/Python-2.7.3/lib/python2.7/site-packages/:~/PaperReplication/:~/test/m2:~/test
Если вы имели 'm1/__ __ INIT py', вы можете запустить' питон -m m1.t' –
... или если вы установите. 'PYTHONPATH = $ PWD', тогда это должно работать немедленно, как вы планируете. –
'' 'не гарантируется расширение - используйте' $ HOME', а не '~' при настройке переменных среды. Python * может * сделать это вручную - для этой цели есть функция библиотеки, но многие программы не будут. –