开发者社区 问答 正文

mac opencv 诡异问题?报错

我今天测试python的opencv 遇到个问题很迷惑,希望大家能指点下,情况是这样的:

我mac 10.9的系统,装了opencv + python2.7 终端执行improt cv2 (opencv的库)的代码是完成没问题的. 

我再用php封一层, test.php 代码里面的exec('python test.py'); 在"终端"也是可以执行的

不过棘手的问题在下面终于出现了,我在网页执行 test.php不行.

后来google了下.应该是跟用户权限有关.就是用其他用户权限(网页在mac跑是_www这个用户) 执行python 又调用opencv的话就会报错: 

ImportError: No module named cv2


请问这问题应该怎么解决?




用 php exec('python test.py') 


展开
收起
爱吃鱼的程序员 2020-06-20 16:59:35 476 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你说的问题我没有遇到过,但有一些经验想与你分享下。

    我实习的公司使用PHP和Python,通讯的方式是PHPHTTP请求到PythonTornado的接口,Python完成计算后返回Json

    然后有一天我升级我的MacPython后,发现公司的Python模块都不能用了,出现了ImportError,仔细查找之下,发现我的系统里存在三个PythonPackage存储路径:

    第一个是用brewinstall安装的:

    /Library/Python/2.7/site-packages

    还有不知道从哪冒出来的:

    /Library/Python/2.7/site-packages/lib/python2.7/site-packages

    以及系统自带的:

    /usr/local/lib/python2.7/site-packages/

    我也没弄明白pip到底将模块安装到了哪里,就干脆在~/.profile里将三个路径都加进了$PYTHONPATH里,在~/.profile后面追加

    exportPYTHONPATH=/Library/Python/2.7/site-packages:/Library/Python/2.7/site-packages/lib/python2.7/site-packages:$PYTHONPATH

    我的建议是,你可以尝试像我一样看看你的Python是不是也存在多个模块路径,将它们都找到并添加到全局模块搜索路径,或许会解决此问题。

    不知对你是否有帮助。

    谢谢您的指教。受用了
    2020-06-20 16:59:53
    赞同 展开评论