从 cx_freeze 创建 exe 时出现动态共享库错误
Dynamic Shared Library error when creating exe from cx_freeze
我有一个使用 OpenCV 的 python 文件 library.I 希望将其作为可执行文件。
遇到这个cx_freeze
示例:
ABC.py(使用opencv库的文件)
setup.py的内容如下
from cx_Freeze import setup, Executable
setup( name = "ABC",
version = "0.1",
description = "Testing",
executables = [Executable("ABC.py")],
)
我在终端中运行这个命令
python setup.py install
显示此错误消息后正在停止
copying /Users/name/.virtualenvs/test/lib/python3.6/site-packages/cv2.so -> build/exe.macosx-10.12-x86_64-3.6/lib/cv2.so
copying /Users/name/.virtualenvs/test/bin/../lib/libopencv_reg.3.3.dylib -> build/exe.macosx-10.12-x86_64-3.6/libopencv_reg.3.3.dylib
error: [Errno 2] No such file or directory: '/Users/name/.virtualenvs/test/bin/../lib/libopencv_reg.3.3.dylib'
我从错误消息中得知 libopencv_reg.3.3.dylib 未找到。
我 运行 在 python 虚拟环境中。
这是我的bash_profile内容
#Homebrew
export PATH=/usr/local/bin:$PATH
#export WORKON_HOME=$HOME/.virtualenvs
# Virtualenv/VirtualenvWrapper
source /usr/local/bin/virtualenvwrapper.sh
#export PROJECT_HOME=$HOME/Devel
#export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
#export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
#export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
我很困惑,请帮我解决这个问题。
指导真的很有帮助,如果这个问题可以在其他地方发布让我知道而不是投反对票。
你能在你的文件系统中搜索丢失的文件吗?当你找到它时,你可以设置 PERL5LIB 或使用 -I 开关将位置设置到 perl 路径
perl library path
在 OpenCV 论坛上分享了相同内容
这是我得到的回复 there
看起来我们构建 OpenCV 的方式使得其他共享对象 (.so) 文件不依赖。
我有一个使用 OpenCV 的 python 文件 library.I 希望将其作为可执行文件。
遇到这个cx_freeze
示例:
ABC.py(使用opencv库的文件)
setup.py的内容如下
from cx_Freeze import setup, Executable
setup( name = "ABC",
version = "0.1",
description = "Testing",
executables = [Executable("ABC.py")],
)
我在终端中运行这个命令
python setup.py install
显示此错误消息后正在停止
copying /Users/name/.virtualenvs/test/lib/python3.6/site-packages/cv2.so -> build/exe.macosx-10.12-x86_64-3.6/lib/cv2.so
copying /Users/name/.virtualenvs/test/bin/../lib/libopencv_reg.3.3.dylib -> build/exe.macosx-10.12-x86_64-3.6/libopencv_reg.3.3.dylib
error: [Errno 2] No such file or directory: '/Users/name/.virtualenvs/test/bin/../lib/libopencv_reg.3.3.dylib'
我从错误消息中得知 libopencv_reg.3.3.dylib 未找到。
我 运行 在 python 虚拟环境中。 这是我的bash_profile内容
#Homebrew
export PATH=/usr/local/bin:$PATH
#export WORKON_HOME=$HOME/.virtualenvs
# Virtualenv/VirtualenvWrapper
source /usr/local/bin/virtualenvwrapper.sh
#export PROJECT_HOME=$HOME/Devel
#export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
#export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
#export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
我很困惑,请帮我解决这个问题。 指导真的很有帮助,如果这个问题可以在其他地方发布让我知道而不是投反对票。
你能在你的文件系统中搜索丢失的文件吗?当你找到它时,你可以设置 PERL5LIB 或使用 -I 开关将位置设置到 perl 路径
perl library path
在 OpenCV 论坛上分享了相同内容
这是我得到的回复 there
看起来我们构建 OpenCV 的方式使得其他共享对象 (.so) 文件不依赖。