Автозаполнение в PyCharm для скомпилированных расширений Python

при написании кода Python с использованием скомпилированных расширений (например, привязки OpenCV Python) PyCharm, похоже, не знает об их доступности. Импорт отмечен серым подчеркиванием, говоря "неразрешенная ссылка" в качестве подсказки, и автозаполнение также не работает. (За исключением имен функций, уже используемых в коде.)

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

есть ли решение для этого или это архитектурное ограничение для скомпилированных расширений? Есть ли другие IDEs, которые справляются с этой проблемой?

6 ответов


импорт отмечен серым подчеркиванием, говоря "неразрешенная ссылка" в качестве всплывающей подсказки

Это скорее всего означает, что PyCharm не видит модуль импорта. В режиме редактирования PyCharm полагается на доступность источников Python импортированных модулей. Если модуль не написан на Python, а является модулем расширения C, PyCharm генерирует "скелет", содержащий прототипы функций, и использует его для завершения.

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

убедитесь, что ваша установка OpenCV видна для интерпретатора Python, который вы выбрали для проекта (File / Settings / Python interpreter). Если интерпретатор верен, попробуйте удалить и повторно добавить его (это занимает много времени, извините).

Если ничего не помогает, ошибка.


PyCharm в настоящее время не сканирует скомпилированные расширения / двоичные файлы, которые вручную добавляются в интерпретатор в IDE. Я подал ошибку с Jetbrains в YouTrack отслеживания. Возможно, вы захотите взглянуть на него и, возможно, я инициировал обсуждение в их форуме (ссылка в описании ошибка). Я был бы признателен, если бы вы могли проголосовать за решение этой проблемы в YouTrack, если вы пользователь PyCharm сталкивается с той же проблемой.


попробуйте нажать кнопку "Перезагрузить" в файле | настройках | настройках IDE | интерпретаторах Python. Это заставило его работать на меня.


в моем случае на OS X 10.8 и PyCharm 3 IDE автоматически выбирала различные установки Python. Я заметил это в Eclipse Pydev, который подобрал один правильный и работал, как ожидалось. Нелегко было заметить разницу между ними.: / Система / Библиотека / Фреймворки / Python.framework / версии / 2.7 / bin / python / opt/local/Library/фреймворки / Python.framework/версии/2.7/bin / python


Я следую инструкциям по этому вопросу: Как установить OpenCV на Windows и включить его для PyCharm без использования диспетчера пакетов

после этого он не работает, и я переустанавливаю PyCharm ide без каких-либо других изменений, и теперь он работает отлично. Я знаю, что это не лучший ответ, но после того, как много времени было потрачено впустую и пробовали разные обходные пути, это было то, что решить мою проблему, я надеюсь, что это может помочь вам.


Я ненавижу давать ответ "работает для меня", но, возможно, детали моей среды помогут вам определить проблему с вашей стороны.

Я никогда не использовал PyCharm раньше, но я только что сделал тест на Mac 10.6.6, используя PyCharm 1.1.1, с Macports opencv +python26. Автозаполнение отлично сработало для меня в первый раз. Я также закрыл и повторно запустил PyCharm и смог автозаполнить, ничего не делая дальше. У меня также не было проблем с автозаполнением для других собственных расширений, которые я пробовал как cjson, procname.

Pycharm 1.1.1 importing opencv with autocomplete.

возможно, это проблема конкретной платформы (Windows?), или ошибка, влияющая на более старую версию PyCharm?