【问题标题】:Importing external modules to python executable将外部模块导入 python 可执行文件
【发布时间】:2025-11-27 08:10:02
【问题描述】:

我正在使用 py2exe 创建一个 python 可执行文件(在此 link 之后)。从 cmd 运行时,.exe 文件显示错误消息“ImportError:没有名为 mechanize 的模块”,尽管我已经安装了 mechanize 并将其放置在 site-packages 文件夹中。我该如何解决?目的是创建一个无需安装 Python 即可在其他 Windows 计算机上运行的包。

【问题讨论】:

  • 你试过 PyInstaller 吗? pyinstaller.org
  • PyInstaller 有效!一般是首选py2exe吗?
  • 我在您的帖子中添加了一个答案,以便您接受它,并添加了 Py2Exe 与 PyInstaller 之间差异的链接。

标签: python py2exe


【解决方案1】:

我最近遇到了这个问题,想把我的解决方案留在这里,以帮助其他想要使用 py2exe 的人。

在按照 py2exe 网站上的tutorial 创建的示例 setup.py 文件中

from distutils.core import setup
import py2exe
    
setup(console=['main.py'])

将 setup() 方法的签名更改为:

from distutils.core import setup
import py2exe

setup(
  console=['main.py'],
  options = {
    'py2exe': {
      'packages': ['packageName']
    }
  }
)

现在将 packageName 更新为您在 main.py 文件中导入的模块的名称。然后运行python setup.py py2exe,它应该使用随附的外部模块构建。我使用 plyer 在我的机器上进行了测试,并使用 pip 安装了我的模块。

请参阅此链接到我发现此py2exe-python-to-exe-introduction 的原始文章的链接,尽管有很多广告!

【讨论】:

    【解决方案2】:

    如cmets中所说,可以使用PyInstaller

    要获取 Py2Exe 和 PyInstaller 之间的差异列表,有一个关于 SO 的问题可以帮助您here。虽然我认为变成可执行文件是一种随机的(我的意思是有时它会工作,有时它不会,而且大多数时候你无法理解为什么......)

    请考虑接受我的回答,我想它解决了你的问题 :)

    【讨论】: