到目前为止,我已经使用Py2exe,但不知道如何添加与我的脚本中使用的Firefox和其他导入包相关的硒web驱动程序依赖关系。如何为在selenium web驱动程序中创建的.py文件创建.exe文件?
我也探讨了Pyinstaller,但它添加依赖关系失败。
我这是第一次这样做,所以请建议如何正确地做到这一点。
谢谢
到目前为止,我已经使用Py2exe,但不知道如何添加与我的脚本中使用的Firefox和其他导入包相关的硒web驱动程序依赖关系。如何为在selenium web驱动程序中创建的.py文件创建.exe文件?
我也探讨了Pyinstaller,但它添加依赖关系失败。
我这是第一次这样做,所以请建议如何正确地做到这一点。
谢谢
你可能想尝试CX_Freeze,它增加了作为运行所需的代码所有必要的包/依赖单个.exe
pip install cx_Freeze
您可以使用py2exe收拾你的Python脚本作为独立的可执行文件。
默认情况下,py2exe会打包所有导入的软件包。如果你还想打包浏览器,你可能不得不使用便携式浏览器。
您可以将便携式浏览器作为数据添加到py2exe包中,并在初始化webdriver时指定相关路径。
您可以在下面的类中使用executable_path
参数指定firefox二进制可执行文件。
webdriver.Firefox(self, firefox_profile=None,firefox_binary=None, timeout=30, capabilities=None, proxy=None, executable_path=geckodriver, firefox_options=None, log_path=geckodriver.log)
**我没有选择添加评论,所以写作答案。
您需要在setup.py文件中指定selenium webdriver的位置。
下面的代码应该有所帮助:
from distutils.core import setup
import py2exe
# Change the path in the following line for webdriver.xpi
data_files = [('selenium/webdriver/firefox', ['C:/Python27/Lib/site-packages/selenium/webdriver/firefox/webdriver.xpi'])]
setup(
name='Name of app',
version='1.0',
description='Description of app',
author='author name',
author_email='author email',
url='',
windows=[{'script': 'test.py'}], # the main py file
data_files=data_files,
options={
'py2exe':
{
'skip_archive': True,
'optimize': 2,
}
}
)
谢谢你的回应,这样我就能创建exe文件,但在下面得到了一些消息,当我试图执行exe时它什么都不做。以下模块似乎丢失 ['Carbon','Carbon.Files','_scproxy','_sysconfigdata','urllib.parse','winreg.CloseKey','winreg.HKEY_CURRENT_USER','winreg.HKEY_LOCAL_MACHINE' ,'winreg.OpenKey','winreg.OpenKeyEx','winreg.QueryValue','winreg.QueryValueEx'] – Priyank
***二进制相关性*** 您的可执行文件也依赖于这些未包含的dll, 您可能需要也可能不需要分发它们。 确保您拥有许可证(如果您分发其中的任何许可证),并确保您不分发属于操作系统的文件。 OLEAUT32。dll - C:\ WINDOWS \ system32 \ OLEAUT32.dll USER32.dll - C:\ WINDOWS \ system32 \ USER32.dll SHELL32.dll - C:\ WINDOWS \ system32 \ SHELL32.dll KERNEL32.dll - C:\ WINDOWS \ system32 \ KERNEL32.dll ADVAPI32.dll - C:\ WINDOWS \ system32 \ ADVAPI32.dll WS2_32.dll - C:\ WINDOWS \ system32 \ WS2_32.dll – Priyank
您可以使用pyinstaller或cx_freeze创建的Python脚本/应用程序的可执行文件。
命令pyinstaller的:
pyinstaller.exe --onefile --windowed <python file name>
您好,我试过,但不知何故它不添加Firefox的驱动程序和EXE或MSI是不能够做任何事情,有没有办法明确添加? – Priyank
它不添加firefox驱动程序,因为它不是一个Python模块/包。只要你安装了firefox驱动程序,你就不会遇到问题,但是如果你确实需要随之一起分发,那么查找InnoSetup。 – Inconnu
谢谢我再次尝试它,我建立了EXE,当我尝试双击EXE它什么都不做。我试图以管理员身份运行它。我也构建了msi我可以安装msi,但在程序文件相同的问题.exe不做任何事情。 – Priyank