Question

J'utilise PySide avec PyCharm. Quand je veux sauter à la source d'une classe PySide de méthode dans l'éditeur, il me dit toujours:

Cannot find declaration to go to     

J'ai vérifié le dir python27/Lib/site-packages/PySide, il y a beaucoup de fichiers .pyc et .pyd, mais peu *.py. Je télécharge aussi le paquet source à partir du site PySide, mais il y a beaucoup de fichiers .cpp et .xml là.

Comment puis-je trouver les sources de .py de PySide et laisser PyCharm les trouver? Ou je dois lire les documents, ce qui est pas pratique.

Était-ce utile?

La solution

Vous pouvez avoir de nombreux malentendus quelque chose. fichiers .pyd (que l'extension de fichier est spécifique à Windows, mais le principe est également applicable aux fichiers .so sur Linux et quelle que soit l'extension de fichiers d'autres systèmes utilisent) sont des extensions écrites en C ou C ++ compilé en code natif et mis dans une bibliothèque liée dynamiquement.

Alors que vous peut regarder à la source si le projet en question est open-source (dans le cas de PySide, il est), il est sait pas Python (vous C? C ++? Un certain quelques bons programmeurs Python ne le font pas) et jonchées de code boilerplate que rien ne contribue mais rend la fonctionnalité interlangage arrive. Pour aggraver les choses, dans le cas de PySide le code source C ++ est généré automatiquement (à partir d'un outil appelé shiboken, qui traite probablement les fichiers xml que vous avez vu). Vous peut aussi regarder à la source des fonctions Qt qui sont enveloppées, mais encore une fois, cela peu probable que vous achetez beaucoup.

Ainsi, la ligne de fond est la suivante: Vous devrez en tenir à la documentation (ou lisez la documentation Qt originale, je l'ai trouvé assez simple à traduire en Python quand j'utilisais PyQt il y a un certain temps). À moins qu'il est absolument terrible (et la documentation Qt originale est pas), il sera également répondre à votre question:

  1. Sooner et avec moins d'effort. Pas besoin de faire votre chemin à travers des milliers de lignes de code juste pour avoir une idée approximative de ce que paramter implique.
  2. Mieux. Des choses comme les meilleures pratiques, mises en garde et gotchas sont à l'obsolescence pas toujours visibles à partir du code seul.
  3. Plus correctement. Peut comprendre correctement le code, en particulier au premier coup d'œil? Je ne parierais pas I pourrait.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top