Приложение Python GUI2Exe для автономной сборки (с использованием Py2Exe)
Я пытаюсь создать Python Script в отдельном приложении. Я использую GUI2Exe. Мой Script использует пакет selenium. Я его установил.
Проект компилируется отлично и запускается в командной строке python напрямую, но не создает отдельную конструкцию, поскольку он ссылается на папку:
ERROR: test_file_data_extract (__main__.FileDataExtract)
----------------------------------------------------------------------
Traceback (most recent call last):
File "File_data_extract.py", line 18, in setUp
File "selenium\webdriver\firefox\firefox_profile.pyc", line 63, in __init__
IOError: [Errno 2] No such file or directory: 'C:\\users\\username\\PycharmProjects\\Python_27_32bit\\file_data_extract\\dist\\File_data_extract.exe\\selenium\\webdriver\\firefox\\webdriver_prefs.json'
Он ищет пакет селена, расположенный по адресу:
C:\Users\имя пользователя\Anaconda2_Py27_32bit\Lib\сайт-пакеты\селеном 2.48.0-py2.7.egg\селеном\WebDriver\светлячок
где C:\Users\username\Anaconda2_Py27_32bit - это то место, где я установил версию Anaconda Python 2.7, 32 бит. По умолчанию он ищет папку\dist\filename.exe.
Ответы
Ответ 1
Мне удалось создать его с помощью bbfreeze. Он отлично работает.
Сначала мне пришлось установить bbfreezee через pip (только один раз):
pip install bbfreeze
Создайте файл build_package.py как:
from bbfreeze import Freezer
f = Freezer("project_name", includes=("selenium","SendKeys",)) #list problem packages here to manually include
f.addScript("project_name_script.py")
f() # starts the freezing process
Сборка проекта:
python build_package.py bdist_bbfreezee
в папке имя_проекта, где находится имя_страницы_проекта project_name.script.exe со всеми включенными пакетами, включая selenium и sendkeys. Когда вы распространяете пакет, вам нужно распространять все имя_проекта, потому что оно содержит все библиотеки DLL зависимых библиотек (python.pyd).
Подробнее см. официальный bbfreezee здесь:
https://pypi.python.org/pypi/bbfreeze/#downloads