Автозаполнение в 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.
.
возможно, это проблема конкретной платформы (Windows?), или ошибка, влияющая на более старую версию PyCharm?