2016-09-11 126 views
0

这是一个艰难的情况,我正在处理。这里是我的问题的短版:Python版本冲突和pip3

  • 我在Ubuntu 12.04
  • 工作,我想与openCV库安装Python 3.5.x。我也想用pip3来管理python的包安装。

这里是我的蟒蛇的版本看起来像

$ python --version 
     Python 2.7.3 
    $ python3 --version 
     Python 3.5.2 

目前看来我已经实现了我的目标。

当我使用virtualenv管理python3库:

virtualenv -p /usr/bin/python3 py3env 
    source py3env/bin/activate 

我看到我的Python的版本如下:

(py3env)[email protected]:~$ python3 --version 
    Python 3.2.3 

我看来是蟒蛇的另一个版本,在我的机器3.2.3搞乱了我安装的版本3.5.2。这是我的第一个问题。

第二个相关问题是我无法安装pip 3。有这个错误我收到因同一Python版本冲突:

$ pip 
/usr/local/lib/python3.2/dist-packages/pip-8.1.2-py3.2.egg/pip/_vendor /pkg_resources/__init__.py:80: UserWarning: Support for Python 3.0-3.2 has been dropped. Future versions will fail here. 
    warnings.warn(msg) 
Traceback (most recent call last): 
    File "/usr/local/bin/pip", line 9, in <module> 
load_entry_point('pip==8.1.2', 'console_scripts', 'pip')() 
    File "/usr/lib/python3/dist-packages/pkg_resources.py", line 337, in load_entry_point 
return get_distribution(dist).load_entry_point(group, name) 
    File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2280, in load_entry_point 
return ep.load() 
    File "/usr/lib/python3/dist-packages/pkg_resources.py", line 1990, in load 
    entry = __import__(self.module_name, globals(),globals(), ['__name__']) 
    File "/usr/local/lib/python3.2/dist-packages/pip-8.1.2-py3.2.egg/pip/__init__.py", line 16, in <module> 
    from pip.vcs import git, mercurial, subversion, bazaar # noqa 
    File "/usr/local/lib/python3.2/dist-packages/pip-8.1.2-py3.2.egg/pip/vcs/mercurial.py", line 9, in <module> 
    from pip.download import path_to_url 
    File "/usr/local/lib/python3.2/dist-packages/pip-8.1.2-py3.2.egg/pip/download.py", line 36, in <module> 
    from pip.utils.ui import DownloadProgressBar, DownloadProgressSpinner 
    File "/usr/local/lib/python3.2/dist-packages/pip-8.1.2-py3.2.egg/pip/utils/ui.py", line 15, in <module> 
    from pip._vendor.progress.bar import Bar, IncrementalBar 
    File "/usr/local/lib/python3.2/dist-packages/pip-8.1.2-py3.2.egg/pip/_vendor/progress/bar.py", line 48 
empty_fill = u'∙' 
       ^
    SyntaxError: invalid syntax 
    [email protected]:~$ pip3 
    /usr/local/lib/python3.2/dist-packages/pip-8.1.2-py3.2.egg/pip/_vendor/pkg_resources/__init__.py:80: UserWarning: Support for Python 3.0-3.2 has been dropped. Future versions will fail here. 
    warnings.warn(msg) 
    Traceback (most recent call last): 
    File "/usr/local/bin/pip3", line 9, in <module> 
    load_entry_point('pip==8.1.2', 'console_scripts', 'pip3')() 
    File "/usr/lib/python3/dist-packages/pkg_resources.py", line 337, in load_entry_point 
    return get_distribution(dist).load_entry_point(group, name) 
    File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2280, in load_entry_point 
    return ep.load() 
    File "/usr/lib/python3/dist-packages/pkg_resources.py", line 1990, in load 
    entry = __import__(self.module_name, globals(),globals(), ['__name__']) 
    File "/usr/local/lib/python3.2/dist-packages/pip-8.1.2-py3.2.egg/pip/__init__.py", line 16, in <module> 
    from pip.vcs import git, mercurial, subversion, bazaar # noqa 
    File "/usr/local/lib/python3.2/dist-packages/pip-8.1.2-py3.2.egg/pip/vcs/mercurial.py", line 9, in <module> 
from pip.download import path_to_url 
    File "/usr/local/lib/python3.2/dist-packages/pip-8.1.2-py3.2.egg/pip/download.py", line 36, in <module> 
    from pip.utils.ui import DownloadProgressBar, DownloadProgressSpinner 
    File "/usr/local/lib/python3.2/dist-packages/pip-8.1.2-py3.2.egg/pip/utils/ui.py", line 15, in <module> 
    from pip._vendor.progress.bar import Bar, IncrementalBar 
    File "/usr/local/lib/python3.2/dist-packages/pip-8.1.2-py3.2.egg/pip/_vendor/progress/bar.py", line 48 
    empty_fill = u'∙' 
       ^
    SyntaxError: invalid syntax 

什么是对所述问题的专家意见?任何很酷的想法来处理这个?非常感谢

+0

是'哪个python3'不同于'/ usr/bin/python3'? –

+0

'$ which python3'的结果是:'/ usr/local/bin/python3' –

+1

所以有你的答案。您正在从不同的二进制文件创建virtualenv。 '/ usr/bin/python3 --version'是3.2.3。,'/ usr/local/bin/python3 --version'是3.5.2。 –

回答

1

这解决了我的第一个问题。现在第二个问题仍然存在,如何在python 3.5.2下安装pip3(最好是使用viretualenv) ?

这里是答案:

python3 -m virtualenv py3env 

source py3env/bin/activate 

的Python 3.5应该有默认点子,也高于后命令您可以使用PIP :)

例如:

python -m pip install requests 

编辑:

Here如果在创建virtualenv后仍需要安装pip,则可以找到非常好的解释。