Что я могу сделать, чтобы позволить PyCharm найти источник PySide? - PullRequest
1 голос
/ 20 февраля 2012

Я использую PySide с PyCharm. Когда я хочу перейти к источнику метода класса PySide в редакторе, он всегда говорит мне:

Cannot find declaration to go to     

Я проверил каталог python27/Lib/site-packages/PySide, там много .pyc и .pyd файлов, но мало *.py. Я также загружаю исходный пакет с сайта PySide, но там много файлов .cpp и .xml.

Как я могу найти .py источники PySide и позволить PyCharm найти их? Или я должен читать документы, что не очень удобно.

1 Ответ

5 голосов
/ 20 февраля 2012

Возможно, вы что-то неправильно поняли. Файлы .pyd (это расширение относится только к окнам, но этот принцип также применим к файлам .so в Linux и к любым расширениям файлов, используемым в других системах) - это расширения, написанные на C или C ++, скомпилированные для собственного кода и помещенные в динамически связанная библиотека.

Хотя вы могли бы посмотреть на источник, если рассматриваемый проект с открытым исходным кодом (в случае PySide это так), это не Python (знаете ли вы C? C ++? Довольно много Хорошие программисты на Python этого не делают) и завалены шаблонным кодом, который не вносит ничего, кроме осуществления кросс-языковой функциональности. Что еще хуже, в случае PySide исходный код C ++ генерируется автоматически (из инструмента под названием Shiboken, который предположительно обрабатывает xml-файлы, которые вы видели). Вы могли бы также взглянуть на источник обернутых функций Qt, но, опять же, вряд ли это вам дорого обойдется.

Итак, суть в следующем: вам придется придерживаться документации (или читать оригинальную документацию Qt; я нашел ее достаточно простой для перевода на Python, когда я использовал PyQt некоторое время назад). Если это не совсем ужасно (а оригинальная документация Qt - нет), это также ответит на ваш вопрос:

  1. Рано и с меньшими усилиями. Не нужно пробираться через тысячи строк кода, чтобы получить общее представление о том, что подразумевает этот параметр.
  2. Лучше. Такие вещи, как лучшие практики, предупреждения об устаревании и ошибки, не всегда видны из одного кода.
  3. Вернее. Может ли вы правильно понять код, особенно на первый взгляд? Я бы не стал ставить , я мог бы.
...