PyCharm не распознает модули, установленные в режиме разработки
У меня есть два чистых проекта python в PyCharm 3.4.1 Professional Edition. Первый, позвоните ему p
(например, пакет), структурирован как пакет setuptools (т.е. С setup.py, все требования и т.д., Однако он не загружается в pypi или в любой другой онлайн-репозиторий). Второй, позвольте ему s
(например, script), является всего лишь python script вместе с двумя модулями.
Проект s
- это (в PyCharm), настроенный на использование выделенного virtualenv, позвоните ему venv
.
Проблема заключается в следующем: когда я устанавливаю проект (пакет) p
в venv
следующим образом:
$ source /path/to/venv/bin/activate
(venv)$ cd /path/to/p
(venv)$ python3 setup.py develop
в командах PyCharm в проекте s
, import p
ошибочны с сообщением. Нет модуля с именем p. Однако, когда я запускаю script в s
, все в порядке, единственная проблема заключается в том, что IDE PyCharm жалуется на невозможность найти модуль. Я могу жить с этим, но это очень раздражает...
Почему это происходит? Это вещь, связанная с PyCharm или с упаковкой? См. НОВОСТИ ниже.
Проект/пакет p
имеет следующую структуру:
p/
|
+- p/
| |
| +- __init__.py
| +- other subpackages, modules, etc.
+- setup.py
+- README, DESCRIPTION, setup.cfg, etc.
Когда я настраиваю проект PyCharm p
, чтобы жить в своем собственном virtualenv и устанавливать его там в режиме разработки, все работает нормально.
Новости
Эта проблема все еще присутствует в PyCharm 5.0.4. Однако мне удалось решить эту проблему.
По некоторым причинам мне пришлось установить еще один пакет из pypi. Я сделал это через PyCharm, выбрав File → Settings → Project: → Project Interpreter, нажав зеленую кнопку +
, найдя пакет и нажав кнопку Install Package. После установки пакет, установленный python3 setup.py develop
, хорошо известен PyCharm. Очевидно, проблема заключалась в том, что PyCharm не синхронизировал кеш с реальностью.
Итак, новый вопрос: может ли PyCharm сказать обновить свои кеши относительно используемой среды python?
Ответы
Ответ 1
Как и в случае с Pycharm 2016.1.4 (профессиональное издание), кажется, что открытие другого проекта (например, через Open Recent), а затем открытие оригинала делает Pycharm переиндексацией установленных пакетов и, следовательно, распознает пакеты с установленными пакетами.
Этого достаточно для меня.
Ответ 2
В области проекта каталог, который содержит p, должен быть помечен как источник. Доступно в: Щелкните правой кнопкой мыши → "Отметить каталог как" → "Корень источников".
Примечание. Этот параметр также добавит его в PYTHONPATH во время выполнения из меню запуска, если соответствующий флажок для опции отмечен в "Редактирование конфигураций" (по умолчанию).
Ответ 3
У меня есть дьявол времени, когда PyCharm распознает класс в модуле, который я только что написал.
Проблема заключается в том, что PyCharm по умолчанию не импортирует пути класса модуля, для чего требуется исправление отдельных двух.
Шаг 1
Щелкните правой кнопкой мыши на имени модуля и пометьте его как "Источник":
![введите описание изображения здесь]()
Шаг 2
По какой-то причине по умолчанию в PyCharm он фактически не добавляет каталоги, помеченные как "корни источников" в путь Python. Исправьте это, включив это.
![введите описание изображения здесь]()
Дополнительно для экспертов
Обратите внимание на "Запуск Script" на изображении выше. Я предполагаю, что добавление этих строк в ваш Python script также приведет к такому же результату.
Протестировано
- Windows 10 x64.
- PyCharm Community Edition 2017.2.3.
Ответ 4
У меня была такая же проблема, как у вас.
Кажется, pycharm не может распознать модуль, установленный непосредственно setup.py, но может распознавать модуль, установленный pip.
Наконец, я использую pip install src_path, но каждый раз, когда я изменяю исходный код, я получаю pip install.
Ответ 5
Вид обходного пути, который работал у меня:
Откройте оба проекта в PyCharm в том же окне (рабочее пространство). Теперь откройте окно настроек, а в разделе "Project → Project Depencies" вы можете выбрать, что проект s
зависит от проекта p
. Импорт и автозаполнение теперь будут работать нормально.
Ответ 6
У меня только что установлен пакет с использованием Pycharm, тогда проблема решена.
Ответ 7
Проблема может быть вашей трактовкой переводчика. Проверьте, на что указывает интерпретатор. В большинстве случаев это ~/PycharmProjects/tests/venv/bin/python, и это может указывать на ванну python, установленную как часть Pycharm
Измените программную ссылку на python на ваш путь /usr/bin/python, и все должно работать нормально