我有一台安装了Python 2.7和Python 3.4的机器。通常要在Python 3.4下安装软件包,我会运行DummyEnum
。
但现在当我跑pip3 install [PACKAGE]
时,我得到了
pip3
即使我下载Traceback (most recent call last):
File "/volume1/@appstore/python3/bin/pip3", line 7, in <module>
from pip import main
File "/usr/local/python3/lib/python3.4/site-packages/pip/__init__.py", line 16, in <module>
from pip.vcs import git, mercurial, subversion, bazaar # noqa
File "/usr/local/python3/lib/python3.4/site-packages/pip/vcs/subversion.py", line 9, in <module>
from pip.index import Link
File "/usr/local/python3/lib/python3.4/site-packages/pip/index.py", line 30, in <module>
from pip.wheel import Wheel, wheel_ext
File "/usr/local/python3/lib/python3.4/site-packages/pip/wheel.py", line 32, in <module>
from pip import pep425tags
File "/usr/local/python3/lib/python3.4/site-packages/pip/pep425tags.py", line 335, in <module>
supported_tags = get_supported()
File "/usr/local/python3/lib/python3.4/site-packages/pip/pep425tags.py", line 307, in get_supported
elif is_manylinux1_compatible():
File "/usr/local/python3/lib/python3.4/site-packages/pip/pep425tags.py", line 163, in is_manylinux1_compatible
return have_compatible_glibc(2, 5)
File "/usr/local/python3/lib/python3.4/site-packages/pip/pep425tags.py", line 187, in have_compatible_glibc
version = [int(piece) for piece in version_str.split(".")]
File "/usr/local/python3/lib/python3.4/site-packages/pip/pep425tags.py", line 187, in <listcomp>
version = [int(piece) for piece in version_str.split(".")]
ValueError: invalid literal for int() with base 10: '20-2014'
并运行get-pip.py
,我也会遇到同样的错误。
问题是什么?
编辑:显然,在安装DSM 6.0时,这是Synology安装中持续存在的问题。
答案 0 :(得分:0)
在上面的评论中找到@Tadhg提供的解决方案。
Here是指向pep425tags.py
的必要更改的链接。
但是,这个SO页面上的所有人都需要进行更改。
添加以下功能:
# Separated out from have_compatible_glibc for easier unit testing
def check_glibc_version(version_str, needed_major, needed_minor):
# Parse string and check against requested version.
#
# We use a regexp instead of str.split because we want to discard any
# random junk that might come after the minor version -- this might happen
# in patched/forked versions of glibc (e.g. Linaro's version of glibc
# uses version strings like "2.20-2014.11"). See gh-3588.
m = re.match(r"(?P<major>[0-9]+)\.(?P<minor>[0-9]+)", version_str)
if not m:
warnings.warn("Expected glibc version with 2 components major.minor,"
" got: %s" % version_str, RuntimeWarning)
return False
return (int(m.group("major")) == needed_major and
int(m.group("minor")) >= needed_minor)
并替换
# Parse string and check against requested version.
version = [int(piece) for piece in version_str.split(".")]
if len(version) < 2:
warnings.warn("Expected glibc version with 2 components major.minor,"
" got: %s" % version_str, RuntimeWarning)
return False
return version[0] == major and version[1] >= minimum_minor
return check_glibc_version(version_str, major, minimum_minor)