2016-11-26 73 views

回答

0

你可能想嘗試CX_Freeze,它增加了作爲運行所需的代碼所有必要的包/依賴單個.exe

pip install cx_Freeze 
+0

您好,我試過,但不知何故它不添加Firefox的驅動程序和EXE或MSI是不能夠做任何事情,有沒有辦法明確添加? – Priyank

+0

它不添加firefox驅動程序,因爲它不是一個Python模塊/包。只要你安裝了firefox驅動程序,你就不會遇到問題,但是如果你確實需要隨之一起分發,那麼查找InnoSetup。 – Inconnu

+0

謝謝我再次嘗試它,我建立了EXE,當我嘗試雙擊EXE它什麼都不做。我試圖以管理員身份運行它。我也構建了msi我可以安裝msi,但在程序文件相同的問題.exe不做任何事情。 – Priyank

1

您可以使用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) 

**我沒有選擇添加評論,所以寫作答案。

1

您需要在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, 
      } 
    } 
) 
+0

謝謝你的迴應,這樣我就能創建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

+0

***二進制相關性*** 您的可執行文件也依賴於這些未包含的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

0

您可以使用pyinstallercx_freeze創建的Python腳本/應用程序的可執行文件。

命令pyinstaller的:

pyinstaller.exe --onefile --windowed <python file name> 
相關問題