我在Windows下用Python设计了一个使用opencv的小应用程序。 我正在尝试创建一个可执行文件,以便任何人都可以安装和使用它,而不必安装python/opencv/numpy。
我试着用py2exe做这个。它实际上创建了一个.exe文件,即使在生成过程中我有一个警告:
*** copy dlls ***
copying C:\Windows\system32\MSVFW32.dll ->
...
The following modules appear to be missing
['cv2.cv']
当我尝试使用命令行运行.exe文件时,会看到以下消息:
ImportError: numpy.core.multiarray failed to import
我的setup.py文件非常简单:
# creating executable here
from distutils.core import setup
import py2exe, sys, os
sys.argv.append('py2exe')
setup(
options = {'py2exe': {'bundle_files': 1}},
console=['facemovie.py'],
zipfile = None,
)
知道我怎么解决这个问题吗? 这是我第一次想部署,我可能遗漏了一些东西。
谢谢!
根据this post,py2exe没有检测到ZIP存档中需要此模块。我不知道正确的语法,所以您必须检查文档,但您可以尝试:
或者您可以尝试将
setup.py
调整为:如果你愿意尝试完全不同的东西,看看bbfreeze:
我还建议使用PyInstaller。我把它用于我的一个项目,它引用了pycrypto和twisted,工作起来就像一个符咒。
谢谢卡尔菲利普,你让我上了轨道。
我想避免“更改我的软件实用程序”解决方案,所以我坚持使用py2exe。
实际上,opencv被正确地找到了,但是库本身具有numpy依赖性,这是没有被检测到的。
所以我的工作方案是: options={'py2exe':{'bundle_files':1,'包含':'numpy'}
最终的可执行文件相当大,但运行平稳。
我没有尝试在另一台电脑,虽然没有安装软件,所以可能会有惊喜。
谢谢你们的帮助。
相关问题 更多 >
编程相关推荐