Python GUI2Exe 应用程序独立构建(使用 Py2Exe)

Python GUI2Exe Application Standalone Build (Using Py2Exe)

我正在尝试将 Python 脚本构建到独立应用程序中。我正在使用 GUI2Exe。我的脚本使用 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'

它正在寻找 selenium 包位于: C:\Users\username\Anaconda2_Py27_32bit\Lib\site-packages\selenium-2.48.0-py2.7.egg\selenium\webdriver\firefox

其中 C:\Users\username\Anaconda2_Py27_32bit 是我安装 Anaconda Python 2.7,32 位版本的地方。默认情况下,它在 \dist\filename.exe 文件夹中查找。

我能够使用 bbfreeze 构建它。效果很好。

首先我必须通过 pip 安装 bbfreezee(仅一次):

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 中 project_name_script.py 所在的位置,您会发现 project_name_script.exe 包含所有包含包,包括 selenium 和 sendkeys。当您分发包时,您需要分发整个 project_name,因为它包含所有依赖库 dll (python .pyd)。

更多详细信息请参考此处的官方 bbfreezee: https://pypi.python.org/pypi/bbfreeze/#downloads