我正在使用SSHTunnelForwarder连接远程数据库,我在Anaconda
环境中的命令lind python客户端运行以下代码,它运行正常。
with SSHTunnelForwarder(
('ip', 22),
ssh_password="pass",
ssh_username="name",
remote_bind_address=('localhost', 3306)) as server:
#connect DB
问题是当我在带有mod_wsgi的apache2中的WSGI应用程序中部署相同的代码时,我收到了错误:
ImportError: /home/user/anaconda2/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so: undefined symbol: X509_get_signature_nid
我认为这是因为Apache已导出LD_LIBRARY_PATH
,而不是/home/user/anaconda2/lib/
。然后我修改了文件/opt/lampp/bin/envvars
,最后添加了一行export LD_LIBRARY_PATH=/home/user/anaconda2/lib
。然后我重新启动了Apache,但仍然遇到了同样的错误。
我忽略了其他任何env变量吗?
答案 0 :(得分:3)
您不能在已加载mod_ssl的Apache中使用Anaconda Python。这是因为Anaconda Python有自己独立的SSL库,但Apache会加载系统的SSL库。一旦发生这种情况,使用SSL的Anaconda代码就会中断。