Profilo di tonyromero

Nome tonyromero
Indirizzo email n/a
Messaggi1
  • 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?