pyenv无法安装python 3.5.3的包

时间:2017-06-23 15:38:48

标签: python pyenv

我的机器上有多个版本的python,这就是我安装pyenv来管理它们的原因。根据pyenv我有

ola@station:~$ pyenv versions
* system (set by /home/ola/.pyenv/version)
  3.4.6
  3.5.3
  3.6.1

我将全局(系统默认值)设置为3.5.3,如您所见

ola@station:~$ pyenv global
3.5.3

我想为python 3.5安装numpy,因为它是一个缺少的模块。如果我正确地理解了pyenv是如何工作的,那么当我运行时sudo pip install numpy pyenv想出要使用的全局版本是3.5.3并为此安装numpy,对吗?

但是,我得到以下问题:

ola@station:~$ sudo pip install numpy
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2991, in <module>
    @_call_aside
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2977, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3004, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 664, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 677, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 856, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==8.1.2' distribution was not found and is required by the application

我该如何解决这个问题?

注意运行sudo pip3 install numpy没有用,因为它告诉我

ola@station:~$ sudo pip3 install numpy
Requirement already satisfied: numpy in /usr/local/lib/python2.7/dist-packages

但是我的机器上没有python 3.5.3的numpy。据我所知,pip3版本和python版本是不同的东西。

2 个答案:

答案 0 :(得分:1)

你可以尝试:

sudo python3 -m pip install numpy

如果这不起作用,您可以尝试从python2中删除numpy。从我记忆中来看,Ubuntu在pip方面有一些奇怪的怪癖,所以它也取决于你的OS /发行版。

答案 1 :(得分:1)

这是一个老问题,但对于其他任何绊倒它的人来说:

使用pyenv which确定将执行哪个脚本/可执行文件。例如,如果3.5.3是您当前当前活动的Python版本,则应该看到以下内容:

ola@station:~$ pyenv which pip3
/home/ola/.pyenv/versions/3.5.3/bin/pip3

此时你可以这样做:

pip3 install numpy

不需要susudo,因为整个pyenv安装位于~ola/.pyenv/下的主目录中。

在您在问题中显示的所有示例中,似乎3.5.3未正确激活,因为涉及/usr/local下的系统范围的Python 2.7版本。所以:

  • 使用pyenv version检查当前有效的版本。
  • 使用pyenv which <script>查看将要执行的确切脚本。