到目前爲止,我已經使用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