【问题标题】:Upgrading OpenCV brew formula: Python not loading properly升级 OpenCV brew 公式:Python 未正确加载
【发布时间】:2014-01-22 07:49:10
【问题描述】:

我正在尝试更新最新的opencv formula(在撰写本文时,此公式安装 opencv 2.4.7)以构建最新版本的 opencv(2.4.8)。

我做的第一件事是brew edit opencv,然后将 url 更改为“https://github.com/Itseez/opencv/archive/2.4.8.tar.gz”并更新校验和。我预计我可能必须处理一些内置问题,但我看到的问题似乎是在运行公式时发生的。

具体来说,当我运行brew upgrade opencv(或取消链接并运行brew install opencv)时,我收到以下消息:

==> Downloading https://github.com/Itseez/opencv/archive/2.4.8.tar.gz
Already downloaded: /Library/Caches/Homebrew/opencv-2.4.8.tar.gz
==> Patching
patching file cmake/OpenCVFindOpenNI.cmake
Warning: Formula#python is deprecated and will go away shortly.
Error: undefined method `incdir' for #<PythonDependency: "python" []>
Please report this bug:   
https://github.com/Homebrew/homebrew/wiki/troubleshooting
/usr/local/Library/Formula/opencv.rb:49:in `install'
/usr/local/Library/Homebrew/build.rb:165:in `install'
/usr/local/Library/Homebrew/formula.rb:272:in `brew'
/usr/local/Library/Homebrew/formula.rb:617:in `stage'
/usr/local/Library/Homebrew/resource.rb:63:in `unpack'
/usr/local/Library/Homebrew/extend/fileutils.rb:21:in `mktemp'
/usr/local/Library/Homebrew/resource.rb:60:in `unpack'
/usr/local/Library/Homebrew/resource.rb:53:in `stage'
/usr/local/Library/Homebrew/formula.rb:615:in `stage'
/usr/local/Library/Homebrew/formula.rb:267:in `brew'
/usr/local/Library/Homebrew/build.rb:144:in `install'
/usr/local/Library/Homebrew/build.rb:45:in `main'
/usr/local/Library/Homebrew/build.rb:12
/usr/local/Library/Formula/opencv.rb:80

Python 似乎没有被加载。我也对弃用警告感到困惑;我发现的一切都表明我应该使用 python 公式。从 link 来看,depends_on :python 依赖似乎应该可以工作(当我尝试使用之前的 2.4.7.1 公式时,它显然可以工作)。

作为参考,这里是我的环境变量:

Apple_PubSub_Socket_Render=/tmp/launch-Ygtqzn/Render
CMD_DURATION=20.7s
COMMAND_MODE=unix2003
DISPLAY=/tmp/launch-a4CGwS/org.x:0
GEM_HOME=/Users/myname/.rvm/gems/ruby-1.9.3-p194
GEM_PATH=/Users/myname/.rvm/gems/ruby-1.9.3-p194:/Users/myname/.rvm/gems/ruby-1.9.3-p194@global
GREP_COLOR=97;45
GREP_OPTIONS=--color=auto
HOME=/Users/myname
LANG=en_CA.UTF-8
LOGNAME=myname
PATH=/usr/local/bin:/Users/myname/.rvm/gems/ruby-1.9.3-p194/bin:/Users/myname/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/myname/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/myname/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin:/Users/myname/.rvm/bin:/usr/local/heroku/bin
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/X11/lib/pkgconfig
PWD=/Users/myname/projects/forks/ruby-opencv
SHELL=/usr/local/bin/fish
SHLVL=1
SSH_AUTH_SOCK=/tmp/launch-lvn79S/Listeners
TERM=xterm-color
TERM_PROGRAM=Apple_Terminal
TERM_PROGRAM_VERSION=273.1
TMPDIR=/var/folders/pv/pvvR8qgvGOCfd5dza+ZbVU+++TI/-Tmp-/
USER=myname
__CF_USER_TEXT_ENCODING=0x1F5:0:0
__fish_bin_dir=/usr/local/Cellar/fish/2.0.0/bin
__fish_datadir=/usr/local/Cellar/fish/2.0.0/share/fish
__fish_help_dir=/usr/local/Cellar/fish/2.0.0/share/doc/fish
__fish_sysconfdir=/usr/local/Cellar/fish/2.0.0/etc/fish
rvm_bin_path=/Users/myname/.rvm/bin
rvm_path=/Users/myname/.rvm
rvm_prefix=/Users/myname
rvm_version=1.25.3:master

和python(自制)版本 python --version #=&gt;Python 2.7.6

brew doctor 输出给我一个关于乘客配置文件的警告(它不应该影响 opencv 的构建)和一个 opencv 未链接的警告(我取消链接它以尝试运行brew install opencv

提前感谢您的帮助。

【问题讨论】:

    标签: python opencv homebrew


    【解决方案1】:

    我有同样的错误。我不明白为什么公式文件中没有正确定义“incdir”或其他变量。但是我通过如下编辑opencv公式文件解决了这个错误,(直接设置每个路径)

    (大约第 50 行)

    DPYTHON_INCLUDE_DIR=/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/include/python2.7

    DPYTHON_LIBRARY=/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib

    DPYTHON_EXECUTABLE=/usr/local/bin/python

    【讨论】:

    • 为我工作,如果您使用标准 Apple Python 版本,路径如下(OS X 10.9.1):DPYTHON_INCLUDE_DIR='/System/Library/Frameworks/Python.framework/Versions/2.7 /include/python2.7/'DPYTHON_LIBRARY='/System/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib'DPYTHON_EXECUTABLE='/usr/bin/python'
    【解决方案2】:

    我通过回滚到较早的自制版本,然后安装 opencv,然后返回到当前版本来解决此问题。

    有关详细说明,请参阅此要点:https://gist.github.com/frederikhermans/8561382

    【讨论】:

    • 这是为我安装的,但现在出现错误:Python 2.7.2 (default, Oct 11 2012, 20:14:37) [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang- 418.0.60)] on darwin 输入“帮助”、“版权”、“学分”或“许可”。 >>> import cv Traceback(最近一次调用最后):文件“”,第 1 行,在 文件“/usr/local/lib/python2.7/site-packages/cv.py”,行1、在 from cv2.cv import * ImportError: dlopen(/usr/local/lib/python2.7/site-packages/cv2.so, 2): 找不到合适的图像。确实找到了:/usr/local/lib/python2.7/site-packages/cv2.so: mach-o, but wrong architecture
    • 我的默认 python 是 32 位,而 opencv 是 64 位。从 brew 安装 python 并默认替换。也有与此处相同的问题:d.hatena.ne.jp/seinzumtode/20130421/1366513083 Waiting from fallout from changed python architecture 但我现在可以执行“import cv”Hurragh
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 2019-04-10
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    相关资源
    最近更新 更多