#python #py2exe
#python #py2exe
Вопрос:
Я пытаюсь сгенерировать exe-файл для скрипта python «cnss_image_loader.py » который импортирует другие скрипты python в ту же папку (см. Ниже), теперь я пытаюсь сгенерировать «cnss_image_loader.exe » используя команду python setup.py py2exe
(см. Вывод ниже) и сталкиваясь с приведенными ниже ошибками, не уверен, являются ли они реальной проблемой или нет, но когдазапуск сгенерированного exe выдает ошибки, показанные ниже
ВОПРОС:
1. Могу ли я не использовать py2exe для создания исполняемого файла?
2. Может ли кто-нибудь точно указать, чего мне не хватает, и дать рекомендации по созданию exe?
3.Is есть лучший способ сгенерировать исполняемый файл python?
ОШИБКА:-
C:Dropboxpy2exedist>cnss_image_loader.exe
Traceback (most recent call last):
File "cnss_image_loader.py", line 9, in <module>
File "android_dl.pyc", line 2, in <module>
File "pip__init__.pyc", line 14, in <module>
File "piputils__init__.pyc", line 22, in <module>
File "pipcompat__init__.pyc", line 26, in <module>
ImportError: No module named ipaddr
cnss_image_loader.py
from android_dl import *
from alpaca import *
setup.py
from distutils.core import setup
import py2exe
setup(console=['cnss_image_loader.py'])
python setup.py py2exe
The following modules appear to be missing
['Carbon', 'Carbon.Files', 'ElementC14N', 'OpenSSL.SSL', 'Pyrex.Distutils.build_ext', '_frozen_importlib', '_imp', '_manylinux', '_posixsubprocess', '_scproxy', '_sysconfigdata', 'backports.ssl_match_hostname', 'builtins', 'certifi', 'charade.universaldetector', 'chardet', 'chardet.universaldetector', 'configparser', 'datrie', 'genshi.core', 'html', 'html.entities', 'html.parser', 'http', 'http.client', 'http.cookies', 'importlib.machinery', 'importlib.util', 'ipaddr', 'ipaddress', 'java', 'lxml', 'lxml.etree', 'lzma', 'ndg.httpsclient.ssl_peer_verification', 'ndg.httpsclient.subj_alt_name', 'ordereddict', 'packages.six.moves', 'packages.ssl_match_hostname.CertificateError', 'packages.ssl_match_hostname.match_hostname', 'packages.urllib3.util.Timeout', 'packages.urllib3.util.parse_url', 'pip._vendor.six.moves.urllib', 'pyasn1.codec.der', 'pyasn1.type', 'queue', 'redis', 'reprlib', 'serial', 'serial.tools.list_ports', 'serializer.serialize', 'simplejson', 'sitecustomize', 'socks', 'tree
builders.getTreeBuilder', 'treewalkers.getTreeWalker', 'trie.Trie', 'urllib.error', 'urllib.parse', 'urllib.request', 'urllib3', 'urllib3.packages.backports.makefile', 'usercustomize', 'xmlrpc.client']
*** binary dependencies ***
Your executable(s) also depend on these dlls which are not included,
you may or may not need to distribute them.
Make sure you have the license if you distribute any of them, and
make sure you don't distribute files belonging to the operating system.
OLEAUT32.dll - C:WINDOWSsystem32OLEAUT32.dll
USER32.dll - C:WINDOWSsystem32USER32.dll
IMM32.dll - C:WINDOWSsystem32IMM32.dll
SHELL32.dll - C:WINDOWSsystem32SHELL32.dll
ole32.dll - C:WINDOWSsystem32ole32.dll
COMDLG32.dll - C:WINDOWSsystem32COMDLG32.dll
COMCTL32.dll - C:WINDOWSsystem32COMCTL32.dll
ADVAPI32.dll - C:WINDOWSsystem32ADVAPI32.dll
NETAPI32.dll - C:WINDOWSsystem32NETAPI32.dll
WS2_32.dll - C:WINDOWSsystem32WS2_32.dll
GDI32.dll - C:WINDOWSsystem32GDI32.dll
VERSION.dll - C:WINDOWSsystem32VERSION.dll
KERNEL32.dll - C:WINDOWSsystem32KERNEL32.dll
ntdll.dll - C:WINDOWSsystem32ntdll.dll
Комментарии:
1. Кстати, этот метод работает, если скрипт python не включает другие скрипты python
Ответ №1:
То, что я использую лично, — это pyinstaller. Вы можете установить его для python, используя следующую команду в cmd:
pip install pyinstaller
После установки вы можете использовать его следующим образом:
python -m pyinstaller main.py
где main.py это ваш модуль python. Вы также можете предоставить файл значков для своего приложения --icon
, используя следующую опцию
python -m pyinstaller --icon=hi.ico main.py
Вы также можете создать отдельное приложение --onefile
, используя следующую опцию:
python -m pyinstaller --onefile main.py
Вы можете найти больше информации на их веб-сайте https://www.pyinstaller.org или в их руководстве по https://pyinstaller.readthedocs.io/en/stable /
Комментарии:
1. Камил, было бы здорово, если бы вы предоставили ссылку, где можно получить более подробную информацию о pyinstaller и его использовании. Возможно, сообщение в блоге, страница документации пакетов и т. Д.
2. @DejiS Я рекомендую прочитать их руководство ( pyinstaller.readthedocs.io/en/stable ), поскольку он довольно подробно описывает, как его использовать. Извините за поздний ответ.
3. Не беспокойтесь. Рад, что вы отредактировали свой ответ, чтобы предоставить ссылки на их веб-сайт и документацию. Это должно значительно облегчить понимание вашего ответа Спасибо!