将外部模块导入Python可执行文件
我正在使用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,不过要注意,里面有很多广告!