Προς το περιεχόμενο

AutoIt Πρόβλημα σε Python script : Pyinstaller OSError: Cannot load AutoItX


bilakos26

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπέρα παιδιά! 
Έχω φτιάξει ένα script το οποίο σε VScode και στην Γραμμή Εντολών (cmd) τρέχει μια χαρά και είναι λειτουργικό. Ωστόσο, όταν χρησιμοποιώ το Pyinstaller για να το μετατρέψω σε εκτελέσιμο αρχείο .exe, ενώ το αρχείο δημιουργείται κανονικά, όταν πάω να το τρέξω μου βγάζει το error της φωτογραφίας. 

Έχω βρεί κάποια posts στο Stack overflow με το συγκεκριμένο θέμα, τα οποια όμως δεν με βοηθησαν αρκετα στο να καταλαβω ποιο είναι το πρόβλημα μου.

 

Παραθέτω και τα Links τα όποια έχω δει μέχρι στιγμής:

https://stackoverflow.com/questions/59190771/pyinstaller-oserror-cannot-load-autoitx-from-path

https://stackoverflow.com/questions/59788795/autoit-pyinstaller-oserror-cannot-load-autoitx-from-path-c-users-appdata-loca

 

Και εδώ είναι η δική μου ερώτηση στο stack overflow:

https://stackoverflow.com/questions/65819195/pyinstaller-oserror-cannot-load-autoitx

 

Όποιος γνωρίζει ή έστω έχει κάποια ιδέα θα του ήμουν ευγνώμων!

Καταγραφή.PNG

Επεξ/σία από bilakos26
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ακολουθησες τις λύσεις που προτείνουν σε αυτες απαντήσεις στο stack overflow?

Για παράδειγμα στη μία γράφει:

"OSError: Cannot load AutoItX from path:": Change '.' to 'autoit\lib' – stovfl 31 mins ago

 

From my understanding the MEI... folder is a temporary folder and I was putting the .dll file into it by '.' when it should have been in the autoit\lib subfolder. So all I had to do was what stovfl said to do above. Thanks for the help.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

1 ώρα πριν, n3a είπε

Ακολουθησες τις λύσεις που προτείνουν σε αυτες απαντήσεις στο stack overflow?

Για παράδειγμα στη μία γράφει:

"OSError: Cannot load AutoItX from path:": Change '.' to 'autoit\lib' – stovfl 31 mins ago

 

From my understanding the MEI... folder is a temporary folder and I was putting the .dll file into it by '.' when it should have been in the autoit\lib subfolder. So all I had to do was what stovfl said to do above. Thanks for the help.

Αυτό το σχόλιο το είχα δει. Πρόσπαθησα να το κάνω αλλά ή δεν το έκανα σωστά ή το έκανα σωστά και δεν δούλεψε. Βέβαια δεν κατάλαβα και πολλά από όσα λέγανε. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αν καταλαβαίνω σωστά, θα πρέπει να τροποποιήσεις το .spec αρχείο που δημιουργεί το Pyinstaller, για να δείχνει τη σωστή τοποθεσία που βρίσκεται η βιβλιοθήκη autoitx που θες να χρησιμοποιήσεις. Μπορείς να κάνεις copy εδώ τα περιεχόμενα του αρχείου .spec? Λογικά θα βρίσκεται στο φάκελο που έχεις ορίσει για το αρχείο .exe που θα δημιουργηθεί. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
1 ώρα πριν, n3a είπε

Αν καταλαβαίνω σωστά, θα πρέπει να τροποποιήσεις το .spec αρχείο που δημιουργεί το Pyinstaller, για να δείχνει τη σωστή τοποθεσία που βρίσκεται η βιβλιοθήκη autoitx που θες να χρησιμοποιήσεις. Μπορείς να κάνεις copy εδώ τα περιεχόμενα του αρχείου .spec? Λογικά θα βρίσκεται στο φάκελο που έχεις ορίσει για το αρχείο .exe που θα δημιουργηθεί. 

Σου παραθέτω το αρχείο παρακάτω:

Bot.spec

Καθώς και το περιεχόμενο του αρχείου:

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None


a = Analysis(['Bot.py'],
             pathex=['C:\\Users\\bilakos\\Desktop\\PYTHON_PROJECTS'],
             binaries=[],
             datas=[],
             hiddenimports=['autoit'],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='Bot',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True )

 

Επεξ/σία από bilakos26
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αν καταλαβαίνω σωστά φίλε μου πρέπει να ορίσεις που θα βρίσκει ο Pyinstaller το dll αρχείο της βιβλιοθήκης που χρησιμοποιείς. Κάτι σε "AutoItX3_x64.dll" πρέπει να είναι.

Στο αρχείο που ανέβασες η ένδειξη datas είναι κενή, το τελικό σου εκτελέσιμο .exe δεν βλέπει τη βιβλιοθήκη και σου βγάζει μήνυμα λάθους. Δες στο documentation του pyinstaller πως μπορείς να την προσθέσεις.   

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
4 ώρες πριν, n3a είπε

Αν καταλαβαίνω σωστά φίλε μου πρέπει να ορίσεις που θα βρίσκει ο Pyinstaller το dll αρχείο της βιβλιοθήκης που χρησιμοποιείς. Κάτι σε "AutoItX3_x64.dll" πρέπει να είναι.

Στο αρχείο που ανέβασες η ένδειξη datas είναι κενή, το τελικό σου εκτελέσιμο .exe δεν βλέπει τη βιβλιοθήκη και σου βγάζει μήνυμα λάθους. Δες στο documentation του pyinstaller πως μπορείς να την προσθέσεις.   

Φίλε πραγματικά με έκανες να το ψάξω αλλιώς και βρήκα την λύση.

Λοιπόν στην αρχή μέσο του cmd όρισα το PATH, γράφοντας:

cd C:\Users\bilakos\Desktop\PYTHON_PROJECTS\BOT

Έπειτα έδωσα την εξής εντολή:

pyinstaller --onefile --add-data C:\Users\bilakos\AppData\Local\Programs\Python\Python39\Lib\site-packages\autoit\lib\AutoItX3_x64.dll;autoit\lib Bot.py 

Το Bot.py είναι το αρχείο Python το οποίο θέλω να μετατρεψω σε executable (.exe). Το αναφέρω για κάποιον ο οποίος ίσως να μην το γνώριζει.

 

Με αυτές τις εντολές λειτούργησε με επιτυχία. 

Σε ευχαριστώ πολύ φίλε που μου άνοιξες τα ματια. Να είσαι πάντα καλα!

 

Επεξ/σία από bilakos26
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Χαίρομαι που βοήθησα!

Ευχαριστούμε που περιέγραψες τη λύση του προβλήματος, έτσι ώστε να την βρει κάποιος άλλος φίλος που ψάχνει το ίδιο θέμα.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...