我想在Centos共享计算机上安装Plotly,所以我没有Sudo访问权限。这台计算机上的所有软件包都已过时,因此我需要通过编译源代码来为本地用户安装python3,我做到了。问题是pip命令不起作用,它给了我这个错误:
无法获取URL“某些URL”:确认ssl证书时出现问题:HTTPSConnectionPool(host ='pypi.org',port = 443):URL超过了最大重试次数:/ simple / pip /(由SSLError(“由于SSL模块不可用,无法连接到HTTPS URL。”))-跳过
我成功使用whl文件安装了软件包,但是当我再次尝试导入Plotly时,却出现了此错误:
import _ssl # if we can't import it, let the error propagate
ModuleNotFoundError:没有名为“ _ssl”的模块
我尝试使用不同的配置再次重新编译python。在尝试构建python时,我尝试了将--with-ssl放在./configure命令中的建议,但出现未知的参数警告。 再次尝试取消注释Modules / Setup文件中的波纹管,但是在编译步骤中出现以下错误。
ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
./ Modules / _ssl.c:3112:错误:函数'X509_VERIFY_PARAM_set_hostflags'的隐式声明
./ Modules / _ssl.c:在函数“ get_verify_flags”中:
./ Modules / _ssl.c:3410:警告:赋值使指针从整数开始而没有强制转换
./ Modules / _ssl.c:在函数“ set_verify_flags”中:
./ Modules / _ssl.c:3423:警告:赋值使指针从整数开始而没有强制转换
./ Modules / _ssl.c:在函数“ set_host_flags”中:
./ Modules / _ssl.c:3586:警告:赋值使指针从整数开始而没有强制转换
make [3]:*** [Modules / _ssl.o]错误1
此外,在配置步骤中,我获得了有关ssl的以下几行
检查针对OpenSSL的编译和链接是否有效...是
正在检查libssl中的X509_VERIFY_PARAM_set1_host ...否
检查--with-ssl-default-suites ... python
有人可以帮助我找到一种在没有sudo访问权限的情况下在CentOS计算机上安装Plotly的解决方案吗? 感谢您的帮助。
答案 0 :(得分:11)
您可以按以下方式在没有root特权的情况下安装Plotly:
在大多数情况下,最好的方法是通过运行以下命令来依赖“用户站点”位置(有关更多详细信息,请参见PEP enter link description here):
pip install --user package_name
或:
easy_install --prefix=$HOME/local package_name
此外,如果您想为PIP
指定一个您有权使用的文件夹:
pip install --install-option="--prefix=$HOME/local" package_name
当然,您需要将该位置添加到PYTHONPATH
环境变量中。
关于使用SSL和非标准位置构建Python,如果OpenSSL不在标准位置,则需要编辑Modules/Setup.dist
来指定OpenSSL的位置:
如果/usr/local/ssl
目录不存在,请下载OpenSSL module
tar zxf openssl-0.9.8g.tar.gz
cd openssl-0.9.8g
./config
make
make install
然后下载python源代码:
tar zxf Python-{version}.tgz && cd Python-{version}
现在修改Modules/Setup.dist
:
204:# Socket module helper for SSL support; you must comment out the other
205:# socket line above, and possibly edit the SSL variable:
206:SSL=/usr/local/ssl
207:_ssl _ssl.c \
208: -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
209: -L$(SSL)/lib -lssl -lcrypto</pre>
如果您已将OpenSSL安装在默认位置,则只需取消注释行206-209,即可:
./configure
make
make install
然后您可以使用:
检查安装 python /usr/local/lib/python{version}/test/test_socket_ssl.py
为确保对Modules/Setup.dist
所做的更改得到确认,请确保清除源根目录(例如make distclean
)并运行configure and make again。