2014-11-12 3 views
1

У меня есть проблемы запуск моего модуля в интерактивной оболочке с:Запуск модуля в PyCharm против интерактивной оболочки

python modulea.py 

Я получаю сообщение об ошибке импорта и некоторые другие ошибки, которые я не вижу, когда я запустить модуль в PyCharm. Модуль.py находится в собственном пакете и ссылается на другой модуль, который также находится в собственном пакете. Структура такова:

package_a: 
--modulea.py 
--__init__.py 
package_b: 
--moduleb.py 
--__init__.py 
resources: 
--input.txt 
--output.txt 

в моем modulea.py импортировать moduleb как это:

from package_b import moduleb as b 

и он работает как шарм в PyCharm, но дает мне ImportError при запуске из командной строки. Как я могу решить эту проблему без изменения структуры проекта? Я также открывать текстовые файлы, дающие этот путь:

with open("../resources/input.txt", "r", encoding="utf-8") as input_file: 

который снова дает мне ошибку в интерактивной оболочке, но работает нормально в PyCharm ...

ответ

2

Хорошая вещь о Иды, что они делают много «клерикальных» работ для нас за кулисами, и это делает жизнь удобной и производительность стремительно растет. Затем пришло время развернуть это как автономное, и это не работает просто приятно.

В этом случае PyCharm добавляет следующее для вас:

enter image description here

Если вы хотите такую ​​же функциональность, что вам нужно будет имитировать то, что делает PyCharm и что добавлять содержание исходных корней/к вашему $ PYTHONPATH (или% PYTHONPATH%, если в Windows), и он будет работать, как ожидалось. Надеюсь это поможет.