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

时间:2014-03-03 10:46:58

标签: python py2exe

我正在使用py2exe创建一个python可执行文件(遵循此link)。从cmd运行时,.exe文件显示错误“ImportError:No module named mechanize”,尽管我已经安装了mechanize并将其放在site-packages文件夹中。我该如何解决?目的是创建一个可以在其他Windows计算机上运行的包,而无需安装Python。

2 个答案:

答案 0 :(得分: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,尽管有很多广告,但请注意!

答案 1 :(得分:0)

如评论中所述,您可以使用PyInstaller

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

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