Этот вопрос задавался ранее - но я не мог решить его ни с одним из ответов.Я установил папку проекта в pycharm ( примечание , что папка проекта не находится в каталоге ../PycharmProject/...
.
Моя структура супер базовая:
project_title (folder)
|--src (folder)
|-- app.py
|-- pipeline_tools (folder)
|-- helpers.py
|-- other modules
Iперепробовал все возможные решения и комбинации, но когда в app.py
я пытаюсь импортировать функцию из любого из модулей, в tools
я получаю ошибки.
Кроме того, Pycharm подчеркивает красным следующее утверждение:
1) from pipeline_tools.helpers import a_certain_function
(красное подчеркивание с «неразрешенной ссылкой»)
Но следующее не дает мне красного:
2) from .pipeline_tools.helpers import a_certain_function
(без красного подчеркивания, обратите внимание на относительный импорт)
Тот факт, что у меня есть или нет __init__.py
внутри модулей, ничего не меняет - я все еще получаю следующие две ошибки:
For 1)
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/home/gabriele/pycharm-2019.1.1/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'pipeline_tools'
для2)
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/home/gabriele/pycharm-2019.1.1/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named '__main__.pipeline_tools'; '__main__' is not a package
Вещи, которые я попробовал:
1) Перейдите к settings > Project Structure
, проверьте content root
, это .../project_title
и отметили его как «источник» - оно синее.
2) Добавьте __init__.py
в папку pipeline_tools
и в папку /src
, перепробовал все возможные комбинации.
3) Используйте приведенный ниже код, чтобы проверить, что путь к папке проекта является частью строки пути - это в конце
import sys
print(sys.path)
4) Использованиеприведенный ниже код для перемещения пути проекта к началу sys.path: sys.path.insert(0,'path/to/project_title')
5) Просто попытался напечатать PYTHONPATH
следующим образом:
os.environ['PYTHONPATH'].split(os.pathsep)
и каталога моего проекта нет в нем
Сейчас я немного растерялся.Понятия не имею, что происходит.