Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根用户下的Python virtualenv SSL错误_Python_Ubuntu_Pip_Virtualenv - Fatal编程技术网

根用户下的Python virtualenv SSL错误

根用户下的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

在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-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。它们不是最新的版本,但很有效。