Я написав модуль (файловий my_mod.py
файл, що знаходиться в папці my_module
). В даний час я працюю у файлі, cool_script.py
який знаходиться в папці cur_proj
. Я відкрив папку в PyCharm за допомогою File - open (і я припускаю, отже, це проект PyCharm).
У ProjectView (CMD-7) я бачу свій проект cur_proj
(червоним кольором), а в розділі "Зовнішні бібліотеки" я бачу my_module
. У cool_script.py я можу писати
from my_module import my_mod as mm
і PyCharm навіть пропонує пропозиції для my_mod. Все йде нормально.
Однак, коли я намагаюся запустити cool_script.py, PyCharm каже мені "Немає модуля з ім'ям my_module"
Мені це здається дивним, бо
A) в терміналі (ОС 10.10.2), в python, я можу імпортувати модуль без проблем - є відповідний запис у PYTHONPATH в .bashrc
B) у PyCharm - Налаштування - Project cur_proj - Інтерпретатор проекту - CogWheel поруч з інтерпретатором python - більше - показувати шляхи до піктограми вибраного інтерпретатора, з'являються шляхи від PYTHONPATH (як я думаю, що вони повинні)
Отже, чому я отримую помилку, коли намагаюся запустити cool_script.py? - Що я пропускаю?
Примітки:
- Я не декларую іншу / спеціальну версію python у верхній частині cool_script.py
- Я переконався, що шлях до
my_module
правильного - Я розміщую
__init__.py
файли (порожні файли) і в,my_module
і вcur_proj
- Я не використовую
virtualenv
Додаток 2015-25 лютого
Коли я заходжу в PyCharm для запуску - редагування конфігурацій, для мого поточного проекту є два варіанти, які вибираються галочкою: " Додати коріння вмісту в PYTHONPATH " та " Додати коріння джерела в PYTHONPATH ". Коли у мене обоє не встановлені, я можу завантажити свій модуль.
Так це працює зараз - але чому ?
Подальші питання виникли:
- Що таке "коріння змісту" та що таке "коріння джерела"? І чому додавання чогось до PYTHONPATH змушує його якось зламати?
- чи слід постійно знімати обидві ці параметри (так само у налаштуваннях за замовчуванням не тільки конкретні конфігурації проекту (ліва панель діалогового вікна Запуск / Налагодження конфігурацій)?
Enable Django Support
в налаштуваннях Languages & Frameworks -> Django
у Pro версії PyCharm. Це відкривало консоль django, що спричинило проблеми з імпортом.
from foldername.mymodule import mymethod
. Ще одна річ, яку я повинен був зробити, - це додати порожню папку _init .py у всі папки, які ви б використали, щоб дістатися до вашого модуля, щоб у випадку, якщоfrom parentfolder.childfolder.mymodule ...
вам знадобиться init у двох папках. Залежно від того, де розташовані папки відносно один одного, вам може знадобитися пакет верхнього рівня,sys.path
як описано у цій відповіді