Неразрешенная справочная проблема в 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

Ответ 1

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

Таким образом, вам не нужно записывать вещи в настройки интерпретатора:

  • Добавьте src в корневой каталог источника:

                            enter image description here

  • Затем обязательно добавьте источники в PYTHONPATH:

enter image description here

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

                      enter image description here

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

                                  enter image description here

Ответ 2

  • проверить __init__.py файл в папке src
  • добавить папку src в качестве корня источника
  • Затем обязательно добавьте источники в PYTHONPATH (см. выше)
  • в меню PyCharm выберите: File → Invalidate Caches/Restart

Ответ 3

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

т. Щелкните правой кнопкой мыши на корневой папке → "Отметить каталог как" → Корень источника

Ответ 5

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

pycharm prefrence

Ответ 6

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

Ответ 7

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

FileSettingsProject <your directory/project>Project Dependencies

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

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

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

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

Ответ 8

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

enter image description here

Ответ 9

В моем случае проблема заключалась в том, что я использовал Virtual environment которая не имела доступа к глобальным пакетам сайтов. Таким образом, интерпретатор не знал о вновь установленных пакетах.

Чтобы решить эту проблему, просто отредактируйте или пересоздайте свой виртуальный интерпретатор и отметьте опцию Inherit global site-packages.

enter image description here

Ответ 10

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

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

Ответ 11

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

Ответ 12

Если вы используете PyCharm:

Вы можете использовать ярлык справки, указав курсор мыши на ошибку и нажав Alt + Enter

Или, альтернативно,

Наведите указатель мыши на недостающую библиотеку, и вы увидите красную лампочку.

введите описание изображения здесь

Нажмите на красную лампочку. Выберите "Установить упаковку".

введите описание изображения здесь

Ответ 13

Pycharm использует venv. В консоли venv вы должны установить пакеты явно или зайти в settings → project interpreter → add interpreter → inherit global site-packages.

Ответ 14

Это сработало для меня: Top Menu -> File -> Invalidate Caches/Restart

Ответ 15

В новых версиях pycharm вы можете сделать это, просто щелкнув правой кнопкой мыши по каталогу или пакету python, из которого вы хотите импортировать файл, затем нажмите "Пометить каталог как" → "Корень источника"