【问题标题】:Why is 'splinter' module not found after creating python executable?为什么在创建 python 可执行文件后找不到'splinter'模块?
【发布时间】:2016-01-24 21:01:00
【问题描述】:

我使用一些导入在 python 中创建了一个小程序:

splinter、Tkinter、webbrwoser、urllib 和 re

该程序有一个 GUI(通过 tkinter),当我通过命令行运行它时一切正常。

然而,当我尝试使用 these instructions 创建可执行文件时,似乎一切正常,但是当我实际运行 .exe 文件时,我得到了以下错误:

C:\Python27\dist>pypy.exe
Traceback (most recent call last):
  File "pypy.py", line 1, in <module>
ImportError: No module named splinter

这是我用来获取.exe文件的代码:

from distutils.core import setup
import py2exe

setup(console=['pypy.py'])

所以我猜(在阅读了this SO 帖子之后)这个问题与我的 dist 文件夹中丢失的文件有关,但是对于我的生活,我不确定从这里去哪里.

请帮助我使我的 GUI python 程序工作。

提前致谢,

乔纳

【问题讨论】:

    标签: python user-interface tkinter exe splinter


    【解决方案1】:

    我发现这篇文章讨论了手动排除 py2exe 构建中的模块: py2exe "include" modules: when should they be managed manually?

    他们提到 tk 会自动包含在内,我怀疑 re 和 webbrowser/urllib 作为标准包也会包含在内,但其他可能需要添加到“包含”部分。我怀疑您的设置中需要类似以下内容:

    setup(
            console=['pypy.py'],
            options={
                    "py2exe":{
                            "includes": ["splinter"]
                    }
            }
    )
    

    希望这会有所帮助;我对 py2exe 所做的不多,所以如果没有,也许其他人可以提供帮助!

    【讨论】:

    • 我认为它会是类似的东西,但我不认为我可以只写“包括:[splinter]” - 根据我的模糊理解,我需要一个文件列表,只是我不是确定(a)我是对的,以及(b)如果我是对的,哪些文件
    • 据我所见,该行将是 'includes: ["splinter"]',包名称周围有双引号。我还读到如果在 setup.py 中导入了模块,它将被包含在内,因此解决方法是在设置中导入 splinter(如果它确实有效,那就太讨厌了)。你也可以试试 'packages': ['splinter']。
    • 不幸的是,我仍然得到“没有名为 splinter 的模块”,除了现在是我尝试运行 py2exe 设置时:/
    • 您可能想了解如何打包/部署 python 代码。您可以暂时将 splinter 添加到 sys.path 中,但我觉得 py2exe 不够聪明,无法遵循这样的依赖关系。 stackoverflow.com/questions/34983860/…
    【解决方案2】:

    好的!经过相当多的挖掘(hereherehere)我得到了一切工作!

    步骤:

    1. 将整个 splinter 文件夹复制到 Python27\Lib\site-packages运行 setup.py
    2. 复制 "webdriver.xpi" 和 "webdriver_prefs.json" from C:\Python27\Lib\site-packages\selenium\webdriver\firefox to dist\selenium\webdriver\firefox after 设置(一次dist 文件夹已创建)
    3. 奖励:要在没有控制台的情况下打开 .exe(如果您使用的是 GUI,则很好),在 setup.py 文件中使用 windows 而不是 console in setup(console=['pypy.py'])

    就是这样!现在程序运行并与 GUI 和 splinter 库一起工作,没有任何问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 2014-06-27
      相关资源
      最近更新 更多