根用户下的Python virtualenv SSL错误
在Ubuntu14.04上,我安装了python、pip、setuptools和virtualenv(作为root用户) 作为一个普通用户,我运行根用户下的Python virtualenv SSL错误,python,ubuntu,pip,virtualenv,Python,Ubuntu,Pip,Virtualenv,在Ubuntu14.04上,我安装了python、pip、setuptools和virtualenv(作为root用户) 作为一个普通用户,我运行 $ pip list apt-xapian-index (0.45) chardet (2.0.1) pip (8.0.2) python-apt (0.9.3.5ubuntu2) python-debian (0.1.21-nmu2ubuntu2) requests (2.2.1) setuptools (19.7) six (1.5.2) ssh
$ pip list
apt-xapian-index (0.45)
chardet (2.0.1)
pip (8.0.2)
python-apt (0.9.3.5ubuntu2)
python-debian (0.1.21-nmu2ubuntu2)
requests (2.2.1)
setuptools (19.7)
six (1.5.2)
ssh-import-id (3.21)
urllib3 (1.7.1)
virtualenv (14.0.5)
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
SNIMissingWarning
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
然后我可以创建一个虚拟电视
$ virtualenv fooenv
世界上的一切都是正确的!问题在于,如果我切换到root用户并尝试创建一个虚拟环境
$ sudo su -
$ virtualenv fooenv
New python executable in /root/fooenv/bin/python
Installing setuptools, pip, wheel...
Complete output from command /root/fooenv/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel:
Collecting setuptools
/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/basecommand.py", line 209, in main
status = self.run(options, args)
File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/commands/install.py", line 299, in run
requirement_set.prepare_files(finder)
File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/req/req_set.py", line 359, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/req/req_set.py", line 576, in _prepare_file
session=self.session, hashes=hashes)
File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/download.py", line 809, in unpack_url
hashes=hashes
File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/download.py", line 648, in unpack_http_url
hashes)
File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/download.py", line 841, in _download_http_url
stream=True,
File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/_vendor/requests/sessions.py", line 480, in get
return self.request('GET', url, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/download.py", line 377, in request
return super(PipSession, self).request(method, url, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/_vendor/requests/sessions.py", line 468, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/_vendor/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/_vendor/cachecontrol/adapter.py", line 46, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/_vendor/requests/adapters.py", line 447, in send
raise SSLError(e, request=request)
SSLError: [Errno 185090050] _ssl.c:344: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 703, in main
symlink=options.symlink)
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 904, in create_environment
download=download,
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 861, in install_wheel
call_subprocess(cmd, show_stdout=False, extra_env=env)
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 781, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command /root/fooenv/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel failed with error code 2
$sudo su-
$virtualenv fooenv
/root/fooenv/bin/python中的新python可执行文件
安装安装工具、pip、控制盘。。。
从命令/root/fooenv/bin/python-c“import sys,pip;sys…d\”]+sys.argv[1:])的setuptools pip-wheel完成输出:
收集设置工具
/usr/local/lib/python2.7/dist packages/virtualenv_support/pip-8.0.2-py2.py3 none any.whl/pip/_vendor/requests/packages/urllib3/util/ssl_u.py:315:SNIMissingWarning:HTTPS请求已发出,但SNI(主题名称指示)TLS扩展在此平台上不可用。这可能会导致服务器提供不正确的TLS证书,从而导致验证失败。有关详细信息,请参阅https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
/usr/local/lib/python2.7/dist packages/virtualenv_support/pip-8.0.2-py2.py3 none any.whl/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120:InsurePlatformWarning:真正的SSLContext对象不可用。这会阻止urllib3正确配置ssl,并可能导致某些ssl连接失败。有关更多信息,请参阅https://urllib3.readthedocs.org/en/latest/security.html#不安全平台警告。
例外情况:
回溯(最近一次呼叫最后一次):
文件“/usr/local/lib/python2.7/dist-packages/virtualenv_-support/pip-8.0.2-py2.py3-none-any.whl/pip/basecommand.py”,第209行
status=self.run(选项、参数)
文件“/usr/local/lib/python2.7/dist packages/virtualenv_support/pip-8.0.2-py2.py3 none any.whl/pip/commands/install.py”,第299行,正在运行
要求设置。准备文件(查找器)
文件“/usr/local/lib/python2.7/dist packages/virtualenv_support/pip-8.0.2-py2.py3 none any.whl/pip/req/req_set.py”,第359行,在prepare_文件中
忽略依赖项=自身。忽略依赖项)
文件“/usr/local/lib/python2.7/dist packages/virtualenv_support/pip-8.0.2-py2.py3 none any.whl/pip/req/req_set.py”,第576行,在_prepare_文件中
session=self.session,hashes=hashes)
文件“/usr/local/lib/python2.7/dist packages/virtualenv_support/pip-8.0.2-py2.py3 none-any.whl/pip/download.py”,第809行,在解包url中
散列=散列
文件“/usr/local/lib/python2.7/dist packages/virtualenv_support/pip-8.0.2-py2.py3 none-any.whl/pip/download.py”,第648行,在unpack_http_url中
散列)
文件“/usr/local/lib/python2.7/dist-packages/virtualenv_-support/pip-8.0.2-py2.py3 none-any.whl/pip/download.py”,第841行,在下载http_-url中
流=真,
文件“/usr/local/lib/python2.7/dist packages/virtualenv_support/pip-8.0.2-py2.py3 none any.whl/pip/_vendor/requests/sessions.py”,get中第480行
返回self.request('GET',url,**kwargs)
文件“/usr/local/lib/python2.7/dist packages/virtualenv_support/pip-8.0.2-py2.py3 none-any.whl/pip/download.py”,第377行,在请求中
返回super(PipSession,self).request(方法,url,*args,**kwargs)
文件“/usr/local/lib/python2.7/dist packages/virtualenv_support/pip-8.0.2-py2.py3 none any.whl/pip/_vendor/requests/sessions.py”,请求中第468行
resp=自我发送(准备,**发送)
文件“/usr/local/lib/python2.7/dist packages/virtualenv_support/pip-8.0.2-py2.py3 none any.whl/pip/_vendor/requests/sessions.py”,第576行,在send中
r=适配器.send(请求,**kwargs)
文件“/usr/local/lib/python2.7/dist packages/virtualenv_support/pip-8.0.2-py2.py3 none any.whl/pip/_vendor/cachecontrol/adapter.py”,第46行,在send中
resp=super(CacheControlAdapter,self).send(请求,**千瓦)
文件“/usr/local/lib/python2.7/dist packages/virtualenv_support/pip-8.0.2-py2.py3 none any.whl/pip/_vendor/requests/adapters.py”,第447行,在send中
raise SSLError(e,请求=请求)
SSLError:[Errno 185090050]\u ssl.c:344:错误:0B084002:x509证书例程:x509\u加载\u证书\u crl\u文件:系统库
----------------------------------------
…安装安装工具、pip、控制盘…完成。
回溯(最近一次呼叫最后一次):
文件“/usr/local/bin/virtualenv”,第11行,在
sys.exit(main())
文件“/usr/local/lib/python2.7/dist-packages/virtualenv.py”,第703行,在main中
symlink=options.symlink)
文件“/usr/local/lib/python2.7/dist packages/virtualenv.py”,第904行,在create_环境中
下载,
文件“/usr/local/lib/python2.7/dist-packages/virtualenv.py”,第861行,安装轮中
调用子进程(cmd,show\u stdout=False,extra\u env=env)
文件“/usr/local/lib/python2.7/dist packages/virtualenv.py”,第781行,在call_子流程中
%(指令描述,程序返回代码))
OSError:Command/root/foonev/bin/python-c“import sys,pip;sys…d\“]+sys.argv[1:])“setuptools pip wheel失败,错误代码为2
那么是什么原因呢?为什么我的普通用户可以创建virtualenv,而不是我的root用户?似乎是一个模糊的bug。无论如何,我会先尝试安装软件包“certifi”,以消除人们对它只是(可能)缺乏正确的CA证书的疑虑。另外,这条消息“一个真正的SSLContext对象不可用。”表明您的openssl安装可能有问题。呃,我放弃了。因为我使用的是Ubuntu安装的python版本,所以我查看了包索引并通过apt get安装了python virtualenv和python pip。它们不是最新的版本,但很有效。