当python脚本由专有模块组成时,PyInstaller如何创建和EXE文件?

2024-10-01 05:05:14 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有一个脚本,我想把它变成一个EXE文件,这样你就可以在我的开发环境中使用它了。 这个脚本使用的是基于selenium的专有模块(在我的例子中是firefoxwebdriver)。 我已经转换了脚本(CFP2_恢复.py)使用PyInstaller将其转换为EXE文件。这种转换的结果看起来不错:

C:\Users\alpha_2.PL\workspace\PacketLight Automation\Test_Cases\Experiment pyinstall>pyinstaller CFP2_Recovery.py
278 INFO: PyInstaller: 3.3
279 INFO: Python: 3.5.2
279 INFO: Platform: Windows-7-6.1.7601-SP1
285 INFO: wrote C:\Users\alpha_2.PL\workspace\PacketLightAutomation\Test_Cases\Experiment pyinstall\CFP2_Recovery.spec
293 INFO: UPX is not available.
299 INFO: Extending PYTHONPATH with paths
['C:\\Users\\alpha_2.PL\\workspace\\PacketLight '
 'Automation\\Test_Cases\\Experiment pyinstall',
 'C:\\Users\\alpha_2.PL\\workspace\\PacketLight '
 'Automation\\Test_Cases\\Experiment pyinstall']
299 INFO: checking Analysis
300 INFO: Building Analysis because out00-Analysis.toc is non existent
300 INFO: Initializing module dependency graph...
304 INFO: Initializing module graph hooks...
308 INFO: Analyzing base_library.zip ...
5411 INFO: running Analysis out00-Analysis.toc
6803 INFO: Caching module hooks...
6810 INFO: Analyzing C:\Users\alpha_2.PL\workspace\PacketLightAutomation\Test_Cases\Experiment pyinstall\CFP2_Recovery.py
8706 INFO: Loading module hooks...
8707 INFO: Loading module hook "hook-pydoc.py"...
8710 INFO: Loading module hook "hook-encodings.py"...
8895 INFO: Loading module hook "hook-selenium.py"...
8908 INFO: Loading module hook "hook-xml.dom.domreg.py"...
8910 INFO: Loading module hook "hook-xml.py"...
8937 INFO: Looking for ctypes DLLs
8973 INFO: Analyzing run-time hooks ...
8987 INFO: Looking for dynamic libraries
9440 INFO: Looking for eggs
9440 INFO: Using Python library c:\program files\python35\python35.dll
9441 INFO: Found binding redirects:
[]
9449 INFO: Warnings written to C:\Users\alpha_2.PL\workspace\PacketLightAutomation\Test_Cases\Experiment pyinstall\build\CFP2_Recovery\warnCFP2_Recovery.txt
9540 INFO: Graph cross-reference written to C:\Users\alpha_2.PL\workspace\Packet
Light Automation\Test_Cases\Experiment pyinstall\build\CFP2_Recovery\xref-CFP2_Recovery.html
9594 INFO: checking PYZ
9595 INFO: Building PYZ because out00-PYZ.toc is non existent
9595 INFO: Building PYZ (ZlibArchive) C:\Users\alpha_2.PL\workspace\PacketLightAutomation\Test_Cases\Experiment pyinstall\build\CFP2_Recovery\out00-PYZ.pyz
10469 INFO: Building PYZ (ZlibArchive) C:\Users\alpha_2.PL\workspace\PacketLightAutomation\Test_Cases\Experiment pyinstall\build\CFP2_Recovery\out00-PYZ.pyz completed successfully.
10487 INFO: checking PKG
10488 INFO: Building PKG because out00-PKG.toc is non existent
10488 INFO: Building PKG (CArchive) out00-PKG.pkg
10521 INFO: Building PKG (CArchive) out00-PKG.pkg completed successfully.
10525 INFO: Bootloader c:\program files\python35\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe
10526 INFO: checking EXE
10526 INFO: Building EXE because out00-EXE.toc is non existent
10526 INFO: Building EXE from out00-EXE.toc
10527 INFO: appending archive to EXE C:\Users\alpha_2.PL\workspace\PacketLightAutomation\Test_Cases\Experiment pyinstall\build\CFP2_Recovery\CFP2_Recovery.exe
10553 INFO: Building EXE from out00-EXE.toc completed successfully.
10560 INFO: checking COLLECT
10561 INFO: Building COLLECT because out00-COLLECT.toc is non existent
10562 INFO: Building COLLECT out00-COLLECT.toc
10828 INFO: Updating manifest in C:\Users\alpha_2.PL\AppData\Roaming\pyinstaller\bincache00_py35_64bit\python35.dll
10830 INFO: Updating resource type 24 name 2 language 1033
11862 INFO: Updating manifest in C:\Users\alpha_2.PL\AppData\Roaming\pyinstaller\bincache00_py35_64bit\_ssl.pyd
11864 INFO: Updating resource type 24 name 2 language 1033
11966 INFO: Updating manifest in C:\Users\alpha_2.PL\AppData\Roaming\pyinstaller\bincache00_py35_64bit\unicodedata.pyd
11968 INFO: Updating resource type 24 name 2 language 1033
12031 INFO: Updating manifest in C:\Users\alpha_2.PL\AppData\Roaming\pyinstaller\bincache00_py35_64bit\_ctypes.pyd
12033 INFO: Updating resource type 24 name 2 language 1033
12088 INFO: Updating manifest in C:\Users\alpha_2.PL\AppData\Roaming\pyinstaller\bincache00_py35_64bit\pyexpat.pyd
12090 INFO: Updating resource type 24 name 2 language 1033
12200 INFO: Updating manifest in C:\Users\alpha_2.PL\AppData\Roaming\pyinstaller\bincache00_py35_64bit\_hashlib.pyd
12202 INFO: Updating resource type 24 name 2 language 1033
12266 INFO: Updating manifest in C:\Users\alpha_2.PL\AppData\Roaming\pyinstaller\bincache00_py35_64bit\select.pyd
12268 INFO: Updating resource type 24 name 2 language 1033
12314 INFO: Updating manifest in C:\Users\alpha_2.PL\AppData\Roaming\pyinstaller\bincache00_py35_64bit\_bz2.pyd
12316 INFO: Updating resource type 24 name 2 language 1033
12369 INFO: Updating manifest in C:\Users\alpha_2.PL\AppData\Roaming\pyinstaller\bincache00_py35_64bit\_lzma.pyd
12371 INFO: Updating resource type 24 name 2 language 1033
12424 INFO: Updating manifest in C:\Users\alpha_2.PL\AppData\Roaming\pyinstaller\bincache00_py35_64bit\_socket.pyd
12426 INFO: Updating resource type 24 name 2 language 1033
13510 INFO: Building COLLECT out00-COLLECT.toc completed successfully.

我把脚本转换的全部内容复制到另一个站点并尝试运行它。这个脚本几乎立刻就失败了,我相信是在selenium和我的私人图书馆介入的时候。这是我试图运行EXE文件的结果:

^{pr2}$

我不知道到底是什么问题,但错误信息中的一行引起了我的注意。它告诉“‘geckodriver’可执行文件需要在路径中”。geckodriver(FirefoxWebDriver)实际上在开发站的路径上。 我是否也应该把它放在我试图运行它的工作站(EXE文件)的路径中? 我是不是在创建EXE文件的过程中遗漏了什么?在


Tags: testalphainfoexeusersworkspaceexperimentpl