Python - 构建可执行文件的麻烦

Cha*_*ury 7 python selenium wxpython

我是一个python程序员,我正在尝试构建一个可执行的二进制文件来将我的软件分发给我的客户端,即使它不是完全可执行的我希望能够以某种方式分发我的软件以便于结束用户.

我已经尝试过PyInstaller和Py2Exe,我遇到了与特定软件相同的问题.

我为我的程序使用了splinter模块(当然这是一个与Selenium等其他框架交互的新高级框架),每当我尝试编译它时,似乎总是留下一个名为"webdriver.xpi"的文件从最终的包中出来,因此当程序试图执行web驱动程序时,它失败并出现IO错误,表示找不到文件"webdriver.xpi"....但除此之外,GUI和一切工作都很完美.

那么有没有办法手动包含它?我尝试通过浏览到特定文件夹@ library.zip文件手动包含它,但它不起作用.

我在这个问题上并不是真正的专家,我依靠GUI2Exe来构建所有东西......如果可能的话,我真的很感激如何解决这个问题.

谢谢.

akn*_*atn 10

我整天都在这里找到了一个解决方法,这是偷偷摸摸的,但它确实有效.在我收到的错误消息中,我注意到库.zip之间有一个空格.我无法在py2exe或selenium的源代码中追踪它.我也尝试将xpi文件放在库zip中,但它没有用.解决方法是:

  1. 在您的安装文件中使用以下选项:

    setup(
        console=['yourFile.py'],
        options={
                "py2exe":{
                        "skip_archive": True,
                        "unbuffered": True,
                        "optimize": 2
                }
        }
    )
    
    Run Code Online (Sandbox Code Playgroud)
  2. 运行py2exe安装

  3. 将xpi文件复制到dist目录中

应该这样做.

  • 而不是手动复制它们,为什么不使用`py2exe`设置选项`datafiles = [('path/copy/them/to',['list/of/file/paths/this.txt'])]`? (2认同)

Mar*_*ill 1

setup.py您需要在您的发行版中包含任何资源文件的说明。有几种方法可以做到这一点(请参阅 distutils、setuptools、distribute - 取决于您用来构建发行版的内容),但py2exe wiki 有一个示例

如果您将资源安装到与 exe 相同的目录中,则可能需要使用此 py2exe 提示来查找资源。

有关在您的发行版中包含资源文件的一些其他信息,请参阅此答案。