Я не могу найти основную причину этого. Я не знаю, если это pyinstaller, проблема с пипсом, модуль запросов или что-то еще, так как ничто не может быть окончательно устранено.Ошибка Pyinstaller ImportError: Нет модуля с именем 'requests.packages.chardet.sys
Я написал сценарий на python, который правильно конфигурирует новый аппаратный sonicwall для нашей корпоративной сети, когда нам нужно развернуть новый блок. Он настраивает правильный .exp-файл в памяти, регистрируется в устройстве sonicwall с учетными данными по умолчанию, импортирует файл через форму данных с несколькими частями, перезапускает sonicwall, затем снова регистрируется и правильно изменяет общий секрет. По соображениям безопасности я не могу опубликовать код здесь, но я могу объяснить проблему более простым примером. Раньше код использовал urllib и urllib2 для обработки HTTP-запросов, но затем я обнаружил модуль запросов, когда мне пришлось перезаписать скрипт, чтобы включить csrfTokens.
Короче говоря, сценарий отлично работает при вызове интерпретатора python. Однако, пытаясь скомпилировать его с помощью pyinstaller, теперь я получаю серию ошибок, когда я переключился на запросы вместо urllib.
Некоторые более фона:
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
В качестве примера, я дам вам код, бомбы из, простой запрос к Google.
#!/usr/bin/python
import requests
r = requests.get('https://google.com')
print(r.text)
Приведенный выше код работает для простого запроса, когда я называю файл из питона, но когда я скомпилировать его, я получаю это:
(EDIT Возникли проблемы оклейки выход, вот Pastebin) pastebin
это создает окна исполняемый файл, но это следующая ошибка при попытке запустить его:
Примечание я установить MS C++ 2008 redistributa чтобы помочь очистить файл msvcr90.dll, но я все равно получаю вышеуказанную ошибку request.packages.chardet.sys.
Я пробовал все, о чем я могу думать, устанавливая чарт, устанавливая chardet2, устанавливая cchardet, заставляя более ранние версии pyinstaller и запрашивая постепенно. Ломать пипетку и вручную устанавливать pyinstaler и запросы. Я нахожусь на своем пути, чтобы попытаться, я не совсем понял ошибку здесь. В системе существует request.packages.chardet. У меня также есть C: \ Python27 в моих Windows PATH, поскольку я могу вызвать python из любого каталога.
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Я старался быть настолько тщательным с ошибками, насколько это возможно, и тем, что я установил, но при необходимости я могу предоставить больше.
ТАКЖЕ Эта проблема ТОЛЬКО появляется, когда я пытаюсь скомпилировать, когда я импортирую запросы. создание тестовых скриптов, beautifulsoup, urllib/2 и т. д. все компилируют корректные окна exe, которые работают правильно.
Похоже на https://www.mail-archive.com/[email protected]/msg00374.html и http://comments.gmane.org/gmane.comp.python.pyinstaller/3281 –