Автозаполнение в PyCharm для скомпилированных расширений Python - PullRequest
24 голосов
/ 19 февраля 2011

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

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

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

Ответы [ 7 ]

18 голосов
/ 04 марта 2011

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

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

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

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

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

3 голосов
/ 12 марта 2012

Попробуйте нажать кнопку «Перезагрузить» в файле |Настройки |Настройки IDE |Python переводчики.Это помогло мне.

3 голосов
/ 17 марта 2011

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

1 голос
/ 03 мая 2019

Я заметил разницу в поведении pycharm в зависимости от способа импорта. с помощью:

import cv2

автозаполнение не работает,

в то время как с:

from cv2 import cv2

автозаполнение работает

0 голосов
/ 24 марта 2017

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

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

0 голосов
/ 10 апреля 2014

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

0 голосов
/ 04 марта 2011

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

Я никогда раньше не использовал 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...