Нерешенная справочная проблема в PyCharm

у меня есть структура каталогов

├── simulate.py
├── src
│   ├── networkAlgorithm.py
│   ├── ...

и я могу получить доступ к сетевому модулю с sys.path.insert().

import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *
, pycharm жалуется, что он не может получить доступ к модулю. Как я могу научить pycham разрешать ссылку?

enter image description here

11 ответов


вручную добавив его, как вы сделали is действительно, один из способов сделать это, но есть более простой метод, и это просто сказать pycharm, что вы хотите добавить src папка в качестве исходного корня, а затем добавление исходного корня в путь python.

таким образом, вам не нужно жестко кодировать вещи в настройках Вашего интерпретатора:

  • добавить src в качестве источника содержимого root:

                            enter image description here

  • затем обязательно добавьте в свой PYTHONPATH:

enter image description here

  • теперь импорт будет разрешен:

                      enter image description here

таким образом, вы можете добавить все, что хотите, в качестве исходного корня, и все будет просто работать. Однако, если вы не отметили его как исходный корень, вы будет получаете ошибка:

                                  enter image description here


  1. проверить на src папку
  2. добавить src папка в качестве исходного корня
  3. затем обязательно добавьте в свой PYTHONPATH (см. выше)
  4. в меню PyCharm выберите: File --> Invalidate Caches / Restart

Как правило, $PYTHONPATH используется для обучения интерпретатора python находить необходимые модули. PyCharm должен добавить путь в предпочтении.

enter image description here


после проверки всех обходных путей, я предлагаю вам взглянуть на Settings -> Project -> project dependencies и упорядочить их.

pycharm prefrence


Если кто-то все еще смотрит на это, принятый ответ все еще работает для PyCharm 2016.3, когда я его попробовал. Возможно, пользовательский интерфейс изменился, но параметры все те же.

ie. Щелкните правой кнопкой мыши на корневой папке -- > 'Mark Directory As' -- > Source Root


Как правило, это проблема с отсутствующим пакетом, просто поместите курсор в неразрешенную ссылку и нажмите Alt+Enter чтобы выявить варианты, то вы должны знать, как его решить.


установить через PyCharm (работает с Community Edition). Открой Settings > Project > Project Interpreter нажмите зеленый значок " + " на скриншоте ниже. Во 2-м диалоге введите имя пакета и нажмите кнопку Установить пакет.

enter image description here


много раз происходит то, что плагин не установлен. например,

Если вы разрабатываете проект django, и у вас нет плагина django, установленного в pyCharm, он говорит об ошибке "неразрешенная ссылка". Относиться: https://www.jetbrains.com/pycharm/help/resolving-references.html


пожалуйста, проверьте, используете ли вы правильный интерпретатор, который вы должны. Я получал ошибку "неразрешенная ссылка "django", чтобы решить эту проблему, я изменил интерпретатор проекта (изменил Python 3 на Python 2.7) из настроек проекта: Выберите проект, перейдите в Файл - > Настройки - > проект: - > интерпретатор проекта - > брови и выберите правильную версию или интерпретатор (e.g / usr/bin / python2.7).


после следования принятому ответу, сделав следующее, решил его для меня:

FileSettingsProject <your directory/project>Project Dependencies

выберите каталог/проект, в котором находится ваш файл с неразрешенным импортом, и установите флажок, чтобы сообщить Pycharm, что этот проект зависит от вашего другого проекта.

моя папка hierarcy немного отличается от той, в вопросе. Мой такой

├── MyDirectory  
│     └── simulate.py  
├── src  
│     ├── networkAlgorithm.py  
│     ├── ...

говоря Pycharm, что src зависит от MyDirectory решил проблему для меня!


pycharm использует venv, в venv u следует установить пакеты явно или настройки goto ->интерпретатор проекта - >добавить интерпретатор - >наследовать глобальный сайт-пакеты