我在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,
)
知道如何解决这个问题吗? 这是我第一次部署,我可能会遗漏一些东西。
谢谢!
答案 0 :(得分:3)
我还建议使用PyInstaller。我用它作为我的一个项目,引用了pycrypto和twisted,它就像一个魅力。
答案 1 :(得分:2)
根据this post, py2exe 未检测到ZIP存档中需要此模块。我不知道正确的语法,所以你必须检查文档,但你可以尝试:
python setup.py py2exe -p cv2
或者您可以尝试将setup.py
调整为以下内容:
options = {'py2exe': {'bundle_files': 1, 'packages': 'cv2' } },
如果您愿意尝试完全不同的事情,请查看bbfreeze:
从python脚本创建独立的可执行文件
答案 2 :(得分:2)
谢谢karlphilip,你把我放在了轨道上。
我想避免“更改我的软件实用程序”解决方案,所以我坚持使用py2exe。
实际上,opencv被正确找到了,但是库本身有一个numpy依赖,但是没有检测到。
所以我的工作解决方案终于: options = {'py2exe':{'bundle_files':1,'包含':'numpy'}},
最终的可执行文件非常大,但运行顺畅。
我没有试过另一台没有安装软件的电脑,所以可能会有惊喜。
谢谢你的帮助。
答案 3 :(得分:0)
我遇到了同样的问题。我通过将图像文件移动到创建可执行文件的文件夹来解决它。这适用于py2exe和pyinstaller。