Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

В моем случае на 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

Ответ 5

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

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

Ответ 6

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

import cv2

автоматическое завершение не работает,

пока с:

from cv2 import cv2

Авто завершение работ

Ответ 7

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

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