我在VM上安装了Linux CentOS 6.7。几个月前,我-在其上编译并安装了Python 2.7.8-在/usr/lib/python2.7/site-packages中安装了virtualenv-13.1.2-在virtualenv中安装了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 install下面给出的详细输出的输出--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的新virtualenv,将其激活并尝试重新安装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 install --upgrade django == 1.8.8 --no-cache-dir
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句