我正在尝试在apache中运行python脚本,如果我使用默认库,它可以工作,但是当我尝试导入已安装的模块时,它找不到它。如果我从控制台运行脚本,它会工作,但当我从Web服务器运行它时,它说它无法找到脚本。
我正在使用原始cgi进行python脚本。
这是我的httpd.conf:
Alias /bitnami/ "/opt/lampp/apache2/htdocs/"
Alias /bitnami "/opt/lampp/apache2/htdocs"
<Directory "/opt/lampp/apache2/htdocs">
Options Indexes FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
AddHandler cgi-script .cgi .py
我导入的库是OpenCV(cv2)。
这是错误:
<type 'exceptions.ImportError'>: /opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/local/lib/libopencv_core.so.3.0)
args = ('/opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_...required by /usr/local/lib/libopencv_core.so.3.0)',)
message = '/opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_...required by /usr/local/lib/libopencv_core.so.3.0)'
我猜我必须以某种方式在Apache上安装C ++库,但我不知道这是怎么回事。
修改
我做了strings libstdc++.so.6 | grep GLIB
并得到了这个结果:
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBC_2.3
GLIBC_2.4
GLIBC_2.2.5
GLIBCXX_FORCE_NEW
如何获得3.4.9版本?
答案 0 :(得分:0)
我终于找到了解决这个问题的方法,但这不是一个漂亮的方法。
我从/ usr / lib复制了libstdc ++。so.6.0.19并将其复制到/ opt / lampp / lib并将libstdc ++。so.6重新链接到新文件。它之前与libstdc ++。so.6.0.8相关联。
我没有找到任何其他“合法”的做法。