Приложение 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