2015-01-29 35 views
7

mam:pycharm, PyQt5 i Python 2.7 - Brak uzupełniania kodu

  • Python 2.7 (Anaconda x64), który działa świetnie
  • PyQt5 (zainstalowany przy użyciu pip install python-qt5)
  • pycharm 4,04 Profesjonalne (niedawno zmodernizowane od 3.4.1)
  • mała Qt aplikacja

Po wielu ciągnięciach włosów (ponieważ Riverbank nie zapewnia binarnej PyQt5 dla Pythona 2.7, tylko dla wersji 3.3+) wszystko działało dzięki wstępnie skompilowanym pakietom binarnym Marcus Otosson's.

Qt jest teraz zainstalowany i w pełni funkcjonalny. Moja aplikacja Qt działa świetnie!

Ale aplikacja nie została jeszcze zakończona, a PyCharm nie wykona kodu zakończenia dla modułów PyQt. Nie rozpozna nawet, że istnieją jakiekolwiek submoduły PyQt5 (takie jak Qwidgets): mimo że działają dobrze, nadal otrzymuję ostry komunikat ostrzegawczy "Unresolved Reference".

Jak to naprawić? Zakładam, że ma to związek z nieodłącznymi trudnościami w generowaniu szkieletów dla plików binarnych *.pyd. Jak to działa dokładnie? Czy mogę ręcznie generować szkielety kodu lub importować je z miejsca, które wygenerowały poprawnie?

Odinstalowanie i ponowna instalacja PyCharm nie pomogło. Nie dokonano też ponownej konfiguracji interpretera, aby ponownie uruchomić generator szkieletu.

Proszę, pomóż zanim pójdę łysy.

+0

Można również skontaktować się bezpośrednio JetBrains: https://intellij-support.jetbrains.com/home – Trilarion

+0

Dobry pomysł - po prostu napisali prośbę o pomoc. StackOverflow wydaje się być szybszy i często jest tak samo pomocny jak oficjalne kanały. –

+0

To działa dla mnie na Windows x64. Ja też biegam profesjonalnie."Qt jest teraz zainstalowany i w pełni funkcjonalny." Przetestowałeś to z linii poleceń? – IronManMark20

Odpowiedz

0

Czy można znaleźć PyQt5 z zewnętrznych bibliotek projektu? Jeśli zainstalujesz go za pomocą pip, powinieneś móc zobaczyć bibliotekę bezpośrednio. Gdy biblioteka będzie mogła zostać skierowana, wykona dla ciebie kodowanie.

+0

Tak, mogę. PyQt4 i PyQt5 są zainstalowane w 'C: \ Anaconda \ Lib \ site-packages \' i są widoczne z PyCharm. To zabawne: założyłem, że to "po prostu działa", ale tak nie jest. W tych folderach jest też sporo oznaczonych Qt * .dll i * .pyd. Autouzupełnianie PyCharm nie rozpoznaje ich. –

+0

Uwaga boczna: PyQt4/5 nie zostanie zainstalowany z pip. Nie używają pliku setup.py i nie są hostowane na Pypi.org. Musisz zainstalować pakiety binarne (które zawierają pliki DLL Qt5) z banku informacji o bankach –

+0

Bardzo przydatne informacje. –

1

Używam PyCharm4 (community Edititon) w systemie Windows z PyQt4, autouzupełnianie jest w porządku. Ponieważ PyQt4 jest w rzeczywistości biblioteką dynamiczną, która ma być dynamicznie ładowana przez interpreter Pythona (możesz zajrzeć do folderu PyQt4, nie ma tam plików Pythona z wyjątkiem niektórych init .py), autouzupełnianie zależy od kodu źródłowego samego PyQt4 , więc przy korzystaniu z pycharm zwykle jest to lokalna pamięć podręczna Pythona. Na moim komputerze, typowo plik wygląda następująco: C: \ Users \ cui.PyCharm40 \ system \ python_stubs-762174762 \ PyQt4 \ QtCore \ QString.py

Można również spróbować zainstalować dokument PyQt z pycharm. Plik-> ustawienia-> Narzędzia-> zewnętrzny dokument Pythona-> PyQt

+0

Postęp! Mam folder PyQt5 w python_stubs, ale są w nim tylko dwa pliki: __init__.py i Qt.py. "z PyQt5 import Qt" nie wyświetla ostrzeżenia o nierozwiązanym odnośniku, więc jeśli zapełniłem ten folder wszystkimi kodami PyQt5, może autouzupełnianie zadziała? Czy masz działającą instalację szkieletów PyQt5, którą możesz rzucić na pastebin? –

+0

Nie jestem pewien, czy istnieją inne ustawienia inne niż komputer i mój, na moim komputerze, jeśli usunąłem fałdę zakończenia "/ Users/mac/Library/Caches/PyCharm40/python_stubs/348993582/PyQt4", a następnie uruchom ponownie PyCharm, otwórz nowy folder, utwórz plik Pythona, a następnie jeśli piszę "z PyQt4.QtCore import QString", Pycham spróbuje stworzyć indeks dla wszystkich bibliotek (może to chwilę potrwać), po tym wszystkim Pliki .py dla PyQt4 będą automatycznie pobierane do folderu python_stubs. –

+1

Prawie pracował. Folder szkieletu PyQt5 znajduje się w folderze "D: \ Users \ mmerrifield \ .PyCharm40 \ system \ python_stubs \ -946255732 \ PyQt5". Kiedy usuwam i ponownie uruchamiam pycharm, buduje on niekompletny szkielet. Dostępne są tylko pliki "__init__.py" i "Qt". Za to, co warto (bardzo mało w moim przypadku) szkielety PyQt4 generują dobrze. –

0

Miał ten sam problem w PyCharm 2017.1.1. Nie rób

import PyQt5.QtWidgets 

zrobić

from PyQt5 import QtWidgets