2016-04-18 9 views
0

У меня проблема очень похожа на this one. Я тоже работаю от Программирование Python 4th edition. Я использую mac powerbook. У меня есть структура каталогов, аналогичная:Путь поиска модуля не исправлена ​​добавлением __init__.py и редактированием PYTHONPATH

programming\ python 
├── PP4E 
│   ├── GUI 
│   │   ├── Tour 
│   │   │   ├── __init__.py 
│   │   │   ├── demoAll-prg.py 
│   │   │   ├── demoAll-win.py 
│   │   │   ├── demoCheck.py 
│   │   │   ├── demoDlg.py 
│   │   │   ├── demoRadio.py 
│   │   │   ├── demoScale.py 
│   │   ├── __init__.py 
│   ├── __init__.py 
│   └── launchmodes.py 
└── __init__.py 

demoAll-prg.py пытается from PP4E.launchmodes import PortableLauncher, но возвращает ImportError: No module named 'PP4E'.

Ответы на вопросы, как правило, сообщают, чтобы убедиться, что в папках есть файлы __init__.py (сделано!) И/или добавить родительский каталог (здесь, «программирование python») в PYTHONPATH. Это также согласуется с Learning Python, 5-е изд., стр. 709.

Я пробовал несколько различных способов редактирования моего пути на питоне, например, описанного here, но безрезультатно. В настоящее время к моему .bash_profile добавлено это:

PYTHONPATH=“/Users/geoffreysametz/google drive/programming python” 
export PYTHONPATH 

но это не решает проблему. Я закрыл и снова открыл терминал и перезагрузил компьютер.

Любые советы по устранению этой проблемы очень ценятся.

ответ

0

Если вы укажете путь python с помощью bash, любому пробелу должно предшествовать \.

PYTHONPATH=“/Users/geoffreysametz/google\ drive/programming\ python” 
+0

Это исправляет $ PYTHONPATH, но не ошибку. 'echo $ PYTHONPATH' возвращает' '/ Users/geoffreysametz/google drive/python программирования' ', но' python demoAll-prg.py' запускается в каталоге «tour», возвращает 'ImportError: нет модуля с именем« PP4E » –

+0

. любой оператор import в demoAll-prg.py, попробуйте это. import sys; печать (sys.path); и посмотрите, действительно ли этот путь включает в себя путь. – Hun

+0

Это показывает нечетную ошибку. Первый путь: «/ Users/geoffreysametz/Google Drive/Программирование Python/PP4E/GUI/Tour'' (предположительно на пути b/c-программы запускается отсюда), а второй -«/Users/geoffreysametz/Google Драйв/Программирование Python/PP4E/GUI/Tour/"/ Пользователи/geoffreysametz/Google Drive/Программирование Python" ', где путь .bash_profile (в комплекте с двойными кавычками) вытолкнут на копию предыдущего пути. –