2015-01-29 24 views
7

ho:PyCharm, PyQt5, e Python 2.7 - Senza il completamento del codice

  • Python 2.7 (Anaconda x64), che funziona alla grande
  • PyQt5 (installato utilizzando pip install python-qt5)
  • PyCharm 4.04 Professionale (recentemente aggiornato da 3.4.1)
  • Una piccola applicazione Qt

Dopo un lungo periodo di estrazione dei capelli (dal momento che lo Riverbank non fornisce un binario PyQt5 per Python 2.7, solo per 3.3+) ho ottenuto tutto funzionante grazie ai pacchetti binari precompilati Marcus Otosson's.

Qt ora è installato e perfettamente funzionante. La mia applicazione Qt funziona alla grande!

Ma l'applicazione non è ancora finita e PyCharm non eseguirà il completamento del codice per i moduli PyQt. Non riconoscerà nemmeno che esistono sotto-moduli PyQt5 (come Qwidgets): anche se funzionano bene, ho ancora l'avviso rosso ondulato "Unresolved Reference".

Come posso risolvere questo problema? Presumo che questo abbia a che fare con le intrinseche difficoltà nella generazione di scheletri per i file binari *.pyd. Come funziona esattamente? Posso generare manualmente gli scheletri di codice o importarli da qualche parte che hanno generato correttamente?

La disinstallazione e la reinstallazione di PyCharm non hanno aiutato. Neanche riconfigurando l'interprete per forzare il funzionamento del generatore di scheletri.

Si prega di aiutare prima di andare calvo.

+0

Si potrebbe anche contattare direttamente JetBrains: https://intellij-support.jetbrains.com/home – Trilarion

+0

Buona idea - Ho appena pubblicato una richiesta di supporto. StackOverflow tende ad essere più veloce e spesso è utile quanto i canali ufficiali. –

+0

Questo funziona per me su Windows x64. Anche io sono un professionista."Qt è ora installato e perfettamente funzionante." Quindi l'hai testato dalla riga di comando? – IronManMark20

risposta

0

Riesci a trovare PyQt5 dalle librerie esterne del progetto? Se lo installi tramite pip, dovresti essere in grado di vedere direttamente la libreria. Una volta che la libreria può essere indirizzata, farà il completamento del codice per te.

+0

Sì, posso. PyQt4 e PyQt5 sono entrambi installati in 'C: \ Anaconda \ Lib \ site-packages \', e visualizzabili da PyCharm. Questa è la cosa divertente: avevo pensato che avrebbe "funzionato", ma non è così. Ci sono un sacco di etichette * .dll e * .pyd con Qt disponibili anche in quelle cartelle. Ma il completamento automatico di PyCharm non li riconosce. –

+0

Nota a margine: PyQt4/5 non si installa con pip. Non usano un file setup.py e non sono ospitati su Pypi.org. Devi installare pacchetti binari (che includono i file Qt5 DLL) da riverbankcomputing –

+0

Informazioni molto utili. –

1

Sto usando PyCharm4 (community Edititon) su Windows con PyQt4, il completamento automatico va bene. Poichè PyQt4 è in realtà una libreria dinamica che deve essere caricata dinamicamente dall'interprete python (puoi guardare nella cartella PyQt4, non ci sono file Python tranne alcuni init .py), il completamento automatico dipende dal codice sorgente di PyQt4 stesso , quindi quando si usa pycharm, di solito è una cache python locale per completare. Per la mia macchina, un genere di file assomiglia: C: \ Users \ cui.PyCharm40 \ system \ python_stubs-762.174.762 \ PyQt4 \ QtCore \ QString.py

si può anche provare l'installazione documento PyQt da PyCharm. File-> impostazioni-> Strumenti-> documento esterno python-> PyQt

+0

Progresso! Ho una cartella PyQt5 in python_stubs, ma ci sono solo due file: __init__.py e Qt.py. "da PyQt5 import Qt" non lancia un avviso di riferimento non risolto, quindi se ho popolato questa cartella con tutti gli stub PyQt5, forse il completamento automatico funzionerebbe? Hai un'installazione funzionante di scheletri PyQt5 che potresti lanciare su pastebin? –

+0

Non sono sicuro che ci siano altre impostazioni diverse dal PC e le mie, per il mio PC, se ho cancellato il completamento foldr "/ Users/mac/Library/Caches/PyCharm40/python_stubs/348993582/PyQt4", quindi riavvia il PyCharm, apri una nuova cartella, crea un file python, poi Se scrivo solo "da PyQt4.QtCore import QString", Pycham proverà a creare l'indice per tutte le librerie (potrebbe volerci un po '), dopo averlo fatto, tutto I file .py per PyQt4 verranno automaticamente scaricati nella cartella python_stubs. –

+1

Quasi lavorato. La mia cartella scheletro PyQt5 si trova in "D: \ Users \ mmerrifield \ .PyCharm40 \ system \ python_stubs \ -946255732 \ PyQt5". Quando lo elimino e ricomincio pycharm, costruisce uno scheletro incompleto. Gli unici file disponibili sono "__init__.py" e "Qt". Per quello che vale (molto poco nel mio caso) gli scheletri PyQt4 generati bene. –

0

Aveva lo stesso problema in PyCharm 2017.1.1. Non fare

import PyQt5.QtWidgets 

fare

from PyQt5 import QtWidgets 
Problemi correlati