Python.exe oluşturma

merve1719

Femtopat
Katılım
21 Şubat 2023
Mesajlar
7
Daha fazla  
Cinsiyet
Kadın
Qt designer ve VS Code kullanarak Python'da bir masaüstü uygulama yazdım. Ancak exe yapamıyorum. PyInstaller, cx_freeze veya PY2exe çözüm olmadı. Aşağıdaki hatayı alıyorum. Talimatları uyguladım. Hook dosyası oluşturdum. Setup dosyası oluşturdum ancak hatayı sürekli alıyorum. Conda üzerinden VS Code ile çalıştım acaba o yüzden mi? Öyleysede bunu nasıl düzeltebilirim?

Hata: 'PyInstaller. Exceptions. Importerrorwhenrunninghook: Failed to import module __pyınstaller_hooks_0_pyqt5 required by hook for module C:\Users\merve\anaconda3\lib\site-packages\PyInstaller\hooks\hook-PyQt5.py. please check whether module __pyınstaller_hooks_0_pyqt5 actually exists and whether the hook is compatible with your version of C:\Users\merve\anaconda3\lib\site-packages\PyInstaller\hooks\hook-PyQt5.py: you might want to read more about hooks in the manual and provide a pull-request to improve PyInstaller.'
 
PyQt5 i güncellemeyi, silip tekrar kurmayı, sürüm değiştirmeyi denediniz mi? Eksik yüklenmiş ve belirtilen hook bilgisayarınızda erişilemez olabilir. Onun haricinde manuel olarak belirtilen hook'u indirerek kodunuza import ederseniz sorunu çözebilirsiniz.
 
Ben de başka bir modül için benzer sorunları yaşamıştım ve çözüm bulamayıp en sonunda pes etmiştim. Umarım pes etmeden çözümü bulup bizi de bilgilendirirsiniz.
 
win11 de mümkün değil. sanal bilgisayar kurup win10da denedim. executable yapıyor ancak bu kezde console olarak yapıyor. --noconsole uda kullanıyorum ancak aynı sonucu alıyorum. qt designer ile oluşturduğum arayüzüm gelmiyor.

Ben de başka bir modül için benzer sorunları yaşamıştım ve çözüm bulamayıp en sonunda pes etmiştim. Umarım pes etmeden çözümü bulup bizi de bilgilendirirsiniz.
Çözdüm. Öncelikle win11 biçok modülü desteklemiyor o yüzden win10'da denemelisiniz. daha sonra pyinstaler -onefile --noconsole main.py --add-data "example.ui;." koduyla başardım. şöyle ki --noconsole yaptım çünkü masaüstü uygulama yapmıştım. birden fazla py dosyam olduğu içinde -onefile komutunu kullandım. -add-data komutunuda ui dosyam için kullandım. main.py dosyamın içinde kullanmak istediğim tüm py dosyalarımıda import ettim. Birde aşağıdaki kodu main dosyama ekledim.
from PyQt5 import QtWidgets, uic
import helper1
import helper2

class MyApp(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
uic.loadUi('ui_file.ui', self)
self.helper1_button.clicked.connect(helper1.do_something)
self.helper2_button.clicked.connect(helper2.do_something)

if __name__ == '__main__':
app = QtWidgets.QApplication([])
window = MyApp()
window.show()
app.exec_()

Kod örnektir. Kendinize göre düzenleyerek çözebilirsiniz. :)

win11 de mümkün değil. sanal bilgisayar kurup win10da denedim. executable yapıyor ancak bu kezde console olarak yapıyor. --noconsole uda kullanıyorum ancak aynı sonucu alıyorum. qt designer ile oluşturduğum arayüzüm gelmiyor.


Çözdüm. Öncelikle win11 biçok modülü desteklemiyor o yüzden win10'da denemelisiniz. daha sonra pyinstaler -onefile --noconsole main.py --add-data "example.ui;." koduyla başardım. şöyle ki --noconsole yaptım çünkü masaüstü uygulama yapmıştım. birden fazla py dosyam olduğu içinde -onefile komutunu kullandım. -add-data komutunuda ui dosyam için kullandım. main.py dosyamın içinde kullanmak istediğim tüm py dosyalarımıda import ettim. Birde aşağıdaki kodu main dosyama ekledim.
from PyQt5 import QtWidgets, uic
import helper1
import helper2

class MyApp(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
uic.loadUi('ui_file.ui', self)
self.helper1_button.clicked.connect(helper1.do_something)
self.helper2_button.clicked.connect(helper2.do_something)

if __name__ == '__main__':
app = QtWidgets.QApplication([])
window = MyApp()
window.show()
app.exec_()

Kod örnektir. Kendinize göre düzenleyerek çözebilirsiniz. :)
güncelleme : win11de de olabiliyormuş. ben conda kullandığım için pathlerimde sıkıntı çıkmış.
 
Son düzenleme:

Geri
Yukarı