2016-11-26 42 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> 
相关问题