python - CentOS上virtualenv使用pip安装遇到segmentation fault

标签 python linux django pip

我在虚拟机上安装了 Linux CentOS 6.7。几个月前,我有 - 在上面编译并安装了 Python 2.7.8 - 在/usr/lib/python2.7/site-packages 中安装了 virtualenv-13.1.2 - 在 vi​​rtualenv 中安装了 Django 1.7。 - 编译并安装 mod_wsgi 4.4.21 并使用它在 Apache 上部署 Django

过去几个月我一直在使用它,没有出现任何问题。

我现在正在尝试升级到 Django 1.8.8。我激活了virtualenv,然后执行了下面的命令,但是每次都遇到段错误。

$pip2.7 install --upgrade django==1.8.8

Collecting django==1.8.8

/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/sitepackages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: 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
Downloading Django-1.8.8-py2.py3-none-any.whl (6.2MB)
99% |############################### | 6.2MB 9.1MB/s eta 0:00:01Segmentation fault

如果我在命令前加上 sudo,则没有段错误,但它根本不会继续安装新版本的 Django。

有什么想法可能会出错吗?

编辑:

下面给出详细输出的输出 pip2.7 安装 --upgrade django==1.8.8 -v

Collecting django==1.8.8
Getting page https://pypi.python.org/simple/django/
Starting new HTTPS connection (1): pypi.python.org
/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-    packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: 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
"GET /simple/django/ HTTP/1.1" 200 3985
1 location(s) to search for versions of django:
* https://pypi.python.org/simple/django/
Getting page https://pypi.python.org/simple/django/
"GET /simple/django/ HTTP/1.1" 200 3985
Analyzing links from page https://pypi.python.org/simple/django/
Found link https://pypi.python.org/packages/any/D/Django/Django-1.5.2-py2.py3-none-any.whl#md5=07f0d2d42162945d0ad031fc9737847d (from https://pypi.python.org/simple/django/), version: 1.5.2
Found link https://pypi.python.org/packages/any/D/Django/Django-1.5.8-py2.py3-none-any.whl#md5=1e3418bd1d6f9725a3d1264c9352f2a1 (from https://pypi.python.org/simple/django/), version: 1.5.8
Found link https://pypi.python.org/packages/any/D/Django/Django-1.6.1-py2.py3-none-any.whl#md5=c7b7a4437b36400f1c23953e9700fd29 (from https://pypi.python.org/simple/django/), version: 1.6.1
Found link https://pypi.python.org/packages/any/D/Django/Django-1.6.2-py2.py3-none-any.whl#md5=3bd014923e85df771b34d12c0ab3c9e1 (from https://pypi.python.org/simple/django/), version: 1.6.2
Found link https://pypi.python.org/packages/any/D/Django/Django-1.6.5-py2.py3-none-any.whl#md5=2bcdb4729f9f358b0925b532eef0a8ff (from https://pypi.python.org/simple/django/), version: 1.6.5
..................................
Found link https://pypi.python.org/packages/source/D/Django/Django-1.8.8.tar.gz#md5=08ecf83b7e9d064ed7e3981ddc3a8a15 (from https://pypi.python.org/simple/django/), version: 1.8.8
Found link https://pypi.python.org/packages/source/D/Django/Django-1.8.9.tar.gz#md5=49f6863b1c83825fb2f473c141c28e15 (from https://pypi.python.org/simple/django/), version: 1.8.9
Found link https://pypi.python.org/packages/source/D/Django/Django-1.8.tar.gz#md5=9a811faf67ca0f3e0d43e670a1cc503d (from https://pypi.python.org/simple/django/), version: 1.8
Found link https://pypi.python.org/packages/source/D/Django/Django-1.9.1.tar.gz#md5=02754aa2d5c9c171dfc3f9422b20e12c (from https://pypi.python.org/simple/django/), version: 1.9.1
Found link https://pypi.python.org/packages/source/D/Django/Django-1.9.2.tar.gz#md5=ee90280973d435a1a6aa01b453b50cd1 (from https://pypi.python.org/simple/django/), version: 1.9.2
Found link https://pypi.python.org/packages/source/D/Django/Django-1.9.tar.gz#md5=110389cf89196334182295165852e082 (from https://pypi.python.org/simple/django/), version: 1.9
Found link https://pypi.python.org/packages/source/D/Django/Django-1.9rc1.tar.gz#md5=b971686521ea09b4bf82aec3e794fcbc (from https://pypi.python.org/simple/django/), version: 1.9rc1
Using version 1.8.8 (newest of versions: 1.8.8, 1.8.8)
"GET /packages/py2.py3/D/Django/Django-1.8.8-py2.py3-none-any.whl HTTP/1.1" 200 6170205
Downloading Django-1.8.8-py2.py3-none-any.whl (6.2MB)
Downloading from URL https://pypi.python.org/packages/py2.py3/D/Django/Django-1.8.8-py2.py3-none-any.whl#md5=97334c82efbac0f93f8b6dd4ee4b516f (from https://pypi.python.org/simple/django/)
99% |############################### | 6.2MB 4.8MB/s eta 0:00:01Segmentation fault

如果我尝试升级到版本 1.7.11(尝试查看 Python 2.7.8 和 Django 1.8.x 之间是否存在任何不兼容),我会得到相同的结果。

如果我尝试安装任何其他包,我也会得到相同的结果。所以这不是 Django 特有的问题,可能与 pip 和 virtualenv 有关?

我现在创建了一个名为 syt_env 的新虚拟环境,激活它并尝试重新安装 Django。现在遇到不同的错误。请注意,它似乎仍在尝试安装在名为 vishwaas_env 的旧 virtualenv 中。

Collecting Django==1.8.8 (from -r requirements/base.txt (line 1))
Exception:
Traceback (most recent call last):
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/basecommand.py", line 211, in main
status = self.run(options, args)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/commands/install.py", line 305, in run
wb.build(autobuilding=True)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/wheel.py", line 705, in build
self.requirement_set.prepare_files(self.finder)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/req/req_set.py", line 334, in prepare_files
functools.partial(self._prepare_file, finder))
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/req/req_set.py", line 321, in _walk_req_to_install
more_reqs = handler(req_to_install)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/req/req_set.py", line 461, in _prepare_file
req_to_install.populate_link(finder, self.upgrade)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/req/req_install.py", line 250, in populate_link
self.link = finder.find_requirement(self, upgrade)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/index.py", line 486, in find_requirement
all_versions = self._find_all_versions(req.name)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/index.py", line 404, in _find_all_versions
index_locations = self._get_index_urls_locations(project_name)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/index.py", line 378, in _get_index_urls_locations
page = self._get_page(main_index_url)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/index.py", line 818, in _get_page
return HTMLPage.get_page(link, session=self.session)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/index.py", line 928, in get_page
"Cache-Control": "max-age=600",
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 477, in get
return self.request('GET', url, **kwargs)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/download.py", line 373, in request
return super(PipSession, self).request(method, url, *args, **kwargs)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 465, in request
resp = self.send(prep, **send_kwargs)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 573, in send
r = adapter.send(request, **kwargs)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/_vendor/cachecontrol/adapter.py", line 36, in send
cached_response = self.controller.cached_request(request)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/_vendor/cachecontrol/controller.py", line 102, in cached_request
resp = self.serializer.loads(request, self.cache.get(cache_url))
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/_vendor/cachecontrol/serialize.py", line 108, in loads
return getattr(self, "_loads_v{0}".format(ver))(request, data)
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/_vendor/cachecontrol/serialize.py", line 170, in _loads_v2
cached["response"]["body"]
File "/home/syt_admin/.virtualenvs/vishwaas_env/lib/python2.7/site-packages/pip/_vendor/cachecontrol/serialize.py", line 20, in _b64_decode_bytes
return base64.b64decode(b.encode("ascii"))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2662: ordinal not in range(128)

最佳答案

好的,所以这个错误变成了 pip 版本 7.1.2 的一个已知问题。

https://github.com/pypa/pip/issues/2674

https://github.com/pypa/pip/issues/3245

使用了调用带有选项 --no-cache-dir 的 pip2.7 的解决方法,并且能够在新的 virtualenv 中安装所有必需的包,并且还升级了早期 virtualenv 中的旧包。

pip2.7 安装 --upgrade django==1.8.8 --no-cache-dir

关于python - CentOS上virtualenv使用pip安装遇到segmentation fault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35430173/

相关文章:

python - Kivy ScreenManager 破坏了 BoxLayout

Windows 上的 Python 2.x 和 3.x 一起使用

mysql - 是否可以从 CentOS 命令行执行数据库插入?

database - Django:数据库设计的最佳实践

python - 如何让两个不同的python脚本在同一个端口上运行?

python - 在Python中使用矩阵格式来计算我自己的相似度分数

c# - 列出不同用户给定目录的内容,Linux

Python套接字代理示例,调用bind()时不断出错..为什么?

python - Django 应用程序尚未加载 Celery 任务

django - 有没有办法在匹配 url 之前更改 request.path?