将外部模块导入Python可执行文件

0 投票
2 回答
2378 浏览
提问于 2025-04-17 20:36

我正在使用py2exe来创建一个Python可执行文件(可以参考这个链接)。但是当我在命令行中运行这个.exe文件时,它显示了一个错误,提示“ImportError: No module named mechanize”,尽管我已经安装了mechanize并把它放在了site-packages文件夹里。我该怎么解决这个问题呢?我的目标是创建一个可以在其他Windows电脑上运行的程序,而不需要安装Python。

2 个回答

0

正如评论中所说,你可以使用 PyInstaller

如果你想了解 Py2Exe 和 PyInstaller 之间的区别,可以参考 StackOverflow 上的一个问题,链接在 这里。不过我觉得把程序变成可执行文件有点随机(有时候能成功,有时候又不行,而且大多数时候你也不知道为什么...)

如果你觉得我的回答解决了你的问题,请考虑接受我的回答哦 :)

1

我最近遇到了这个问题,觉得把我的解决方案留在这里,可以帮助那些想使用py2exe的人。

在按照py2exe网站上的教程创建的示例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,不过要注意,里面有很多广告!

撰写回答