繁体   English   中英

如何运行由 Pyinstaller 创建的使用 Webbot 的 Python 程序?

[英]How do I run a Python program created by Pyinstaller that uses Webbot?

我正在尝试运行一个使用 Webbot 的相当简单的 Windows Python 3.7 脚本。 该脚本在 Python 的 IDLE 中运行良好,所以我知道我编写的代码有效并且没有任何问题,但我想将它作为 .exe 运行。 然而在用 Pyinstaller 打包后(通常效果很好),虽然 Pyinstaller 进程运行,但实际生成的程序根本不会运行。

我看了一下here,但这并没有多大帮助。 如果我编译使用:

pyinstaller file.py

按照建议,当我运行生成的 .exe 时,程序会立即关闭,没有错误消息。

如果我改为尝试:

pyinstaller --onefile file.py

或者:

pyinstaller file.py -F

然后,当我运行编译后的 .exe 时,我收到以下消息:

FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\Users\\KimJiwoo\\Appdata\\Local\\Temp\\_MEI51362\\drivers\\chrome_windows.exe'

所以我想我需要 chrome_windows.exe?

我想我可以给程序这个文件,但 _MEI 文件夹是一个临时目录,似乎每次都会创建。 我试过把 chrome_windows.exe 放在其他地方,比如 System32 或 file.py 或创建的 .exe 所在的同一目录,也会发生同样的错误。

所以我想我必须让这个程序以某种方式看到 chrome_windows.exe 但我不确定如何。 我已经有了

from webbot import Browser

在我的脚本中,但显然我需要更多的东西。 不确定是什么。

请注意,我并不担心 Python 程序是否在其自己创建的 .exe 中包含 chrome_windows.exe。 我的意思是,那会很好,但是如果将 chrome_windows.exe 推入运行程序的计算机上的目录中更简单的编码方式,并且程序中的某些内容指向它那里,那也可以. 我觉得这个问题的答案可能很简单,所以我追求的是最简单、最优雅的解决方案。

Webbot源中 webdriver 的路径似乎是driverpath = os.path.join(os.path.split(__file__)[0] , 'drivers{0}{1}'.format(os.path.sep , driverfilename)) (编译为exe时,文件目录在TEMP中)。

您可以使用源代码制作自己的类并更改目录路径(github.com/nateshmbhat/webbot/blob/master/webbot/webbot.py)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM