tonyromero
Profilo di
Nome | tonyromero |
---|---|
Indirizzo email | n/a |
Messaggi | 1 |
-
- 2016-09-26 02:06:39
- File e librerie mancanti py2exe / pyinstaller
- Forum >> Principianti
- Ciao a tutti,
ho scritto uno script per un bot di reddit ed ho utilizzato la libreria PRAW. Lo script funziona alla perfezione lanciandolo da terminale usando python, il problema però è che voglio renderlo portabile, allora ho provato a compilare utilizzando py2exe e pyinstaller.
Prima prova: py2exe
Al primo tentativo veniva lanciata quest'eccezione:
Exception: Could not find config file in any of: [u'D:\\...path...\\dist\\library.zip\\praw\\praw.ini', u'C:\\Users\\User\AppData\\Roaming\\praw.ini', u'praw.ini']
Per risolvere è bastato inserire nella stessa cartella dell'eseguibile il file praw.ini. Ricompilando:
File "praw\__init__.pyc", line 46, in <module>
File "six.pyc", line 203, in load_module
File "six.pyc", line 115, in _resolve
File "six.pyc", line 82, in _import_module
ImportError: No module named htmlentitydefs
Anche stavolta è bastato inserire il file htmlentitydefs.pyd nella library.zip creata da py2exe. Ora l'eseguibile può essere lanciato ma, una volta inseriti i dati per fare il login, viene lanciata una nuova eccezione:
File "<decorator-gen-51>", line 2, in login
File "praw\decorators.pyc", line 78, in wrap
File "praw\__init__.pyc", line 1471, in login
File "<decorator-gen-8>", line 2, in request_json
File "praw\decorators.pyc", line 116, in raise_api_exceptions
File "praw\__init__.pyc", line 622, in request_json
File "praw\__init__.pyc", line 453, in _request
File "praw\__init__.pyc", line 434, in handle_redirect
File "praw\handlers.pyc", line 146, in wrapped
File "praw\handlers.pyc", line 56, in wrapped
File "praw\handlers.pyc", line 102, in request
File "requests\sessions.pyc", line 596, in send
File "requests\adapters.pyc", line 497, in send
requests.exceptions.SSLError: [Errno 2] No such file or directory
Per cui non ho trovato soluzione.
Seconda prova: pyinstaller.
Al primo tentativo di compilazione viene lanciata la seguente eccezione:
ImportError: No module named ConfigParser
E anche qui, non so come risolvere.
Ho compilato utilizzando py2exe e pyinstaller con Python 2.7 e pyinstaller con Python 3.5 (py2exe non è supportato per la 3.5). Le versioni installate sono le ultime.
Come ultima prova ho utilizzato cx_Freeze con Python 3.5 ma dopo averlo installato non sono riuscito a compilare in nessun modo perchè non trova la libreria cx_Freeze.
Gli script per entrambe le versioni di Python sono stati testati e funzionano.
Qualche suggerimento?