Non riesco a trovare la causa principale di questo. Non so se si tratta di pyinstaller, un problema di pip, il modulo delle richieste o qualcos'altro visto che nulla può essere eliminato in modo definitivo.Errore Pyinstaller ImportError: nessun modulo denominato 'requests.packages.chardet.sys
Ho scritto uno script in python che configura correttamente un nuovo hardware sonicwall per la nostra rete aziendale quando dobbiamo implementare una nuova unità. Configura un file .exp corretto in memoria, accede al dispositivo sonicwall con credenziali predefinite, importa il file tramite un modulo dati multiparte, riavvia il sonicwall, quindi esegue nuovamente il login e modifica correttamente il segreto condiviso. Per motivi di sicurezza, non posso pubblicare il codice qui, ma posso spiegare il problema con un esempio molto più semplice. In precedenza, il codice utilizzava urllib e urllib2 per elaborare le richieste http, ma poi ho scoperto il modulo delle richieste quando ho dovuto riscrivere lo script per includere csrfTokens.
Per farla breve, lo script funziona in modo sorprendente quando viene chiamato dall'interprete python. Tuttavia, quando provo a compilarlo con pyinstaller, ricevo una serie di errori ora che sono passato alle richieste invece delle urllibs.
Alcuni più di fondo:
Windows 7 - Python2.7.9
pip 6.0.8 from C:\Python27\lib\site-packages\pip-6.0.8-py2.7.egg (python 2.7)
pip freeze output:
pyinstaller==2.1.1.dev0
pywin32==219
requests==2.5.3
Per fare un esempio, ti darò un codice che le bombe, una semplice richiesta a Google.
#!/usr/bin/python
import requests
r = requests.get('https://google.com')
print(r.text)
Il codice precedente funziona per una semplice richiesta quando chiamo il file in pitone, ma quando compilo esso, ottengo questo:
(EDIT avendo problemi per incollare in uscita, qui è la pastebin) pastebin
esso crea un eseguibile di Windows, ma questo è il seguente errore quando provo a farlo funzionare:
NOTA ho installato il ms C++ 2008 redistributa per aiutare a chiarire msvcr90.dll, ma ottengo ancora l'errore request.packages.chardet.sys sopra.
Ho provato tutto quello che posso pensare, installando chardet, installando chardet2, installando cchardet, forzando le versioni precedenti di pyinstaller e le richieste in modo incrementale. Rottamazione dei pip e installazione manuale di pyinstaler e richieste. Sono alla fine del mio spirito con cose da provare, non ho proprio qui l'errore. requests.packages.chardet esiste sul sistema. Ho anche C: \ Python27 nel mio PATH di Windows in quanto posso chiamare python da qualsiasi directory.
Se avete bisogno di ulteriori informazioni, fatemelo sapere. Ho cercato di essere il più accurato possibile con gli errori e ciò che ho installato, ma posso fornire di più se necessario.
ANCHE SOLO questo problema sembra accadere quando provo a compilare quando impongo richieste. creando script di test, beautifulsoup, urllib/2, ecc. tutti compilano un exe di windows valido che funziona correttamente.
Sembra correlato a https://www.mail-archive.com/[email protected]/msg00374.html e http://comments.gmane.org/gmane.comp.python.pyinstaller/3281 –