conda env 中的 pip 错误

Wrong pip in conda env

我有一个名为 birdid 的 conda 环境。

在环境中工作时(即我做了 source activate bird_dev),显示包列表给

(bird_dev)...$ conda list
# packages in environment at /home/jul/Development/miniconda/envs/bird_dev:
#
...
pep8                      1.6.2                    py27_0  
pip                       7.1.2                    py27_0  
pixman                    0.26.2                        0  
...

但是当试图查看使用什么 pip 时,我得到

(bird_dev)...$ which pip
/usr/local/bin/pip

同时找到正确的 python

(bird_dev)...$ which python
/home/jul/Development/miniconda/envs/bird_dev/bin/python

有人可以帮忙吗?

编辑:有关已安装版本的更多详细信息

检查哪个-a pip

(bird_dev)...$ which -a pip
/usr/local/bin/pip
/usr/bin/pip

/usr/bin/pip中的版本很旧。

(bird_dev)...$ /usr/bin/pip -V
pip 1.5.4 from /usr/lib/python2.7/dist-packages (python 2.7)    
(bird_dev)....$ /usr/local/bin/pip -V
pip 6.1.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

env中其实没有pip

$ ll /home/jul/Development/miniconda/envs/bird_dev/bin/ | grep pip

returns 没什么

/home/jul/Development/miniconda/bin/pip

有一个点
$ /home/jul/Development/miniconda/bin/pip -V
pip 6.1.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

但它不是 conda list 列出的版本,而是 python 脚本 (!)

$ cat /home/jul/Development/miniconda/bin/pip
#!/home/jul/Development/miniconda/bin/python
if __name__ == '__main__':
    import sys
    from pip import main

    sys.exit(main())

编辑:echo $PATH

(bird_dev)...$ echo $PATH
/home/jul/Development/miniconda/envs/bird_dev/bin:/home/jul/torch/install/bin:/home/jul/torch/install/bin:/home/jul/torch/install/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

编辑:尝试强制安装

(bird_dev)...$ conda install --force pip
Fetching package metadata: ....
Solving package specifications: .
Package plan for installation in environment /home/jul/Development/miniconda/envs/bird_dev:

The following packages will be UPDATED:

    pip: 7.1.2-py27_0 --> 7.1.2-py27_0

Proceed ([y]/n)? y

[      COMPLETE      ]|##################################################################################################################################################################################| 100%
Extracting packages ...
[      COMPLETE      ]|##################################################################################################################################################################################| 100%
Unlinking packages ...
[      COMPLETE      ]|##################################################################################################################################################################################| 100%
Linking packages ...
[      COMPLETE      ]|##################################################################################################################################################################################| 100%
(bird_dev)...$ which pip
/home/jul/Development/miniconda/envs/bird_dev/bin/pip
(bird_dev)...$ /home/jul/Development/miniconda/envs/bird_dev/bin/pip -V
pip 6.1.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
(bird_dev)...$ cat /home/jul/Development/miniconda/envs/bird_dev/bin/pip 
#!/home/jul/Development/miniconda/envs/bird_dev/bin/python
if __name__ == '__main__':
    import sys
    from pip import main

    sys.exit(main())

奇怪。

您可能设置了 PYTHONPATH。我建议取消设置它,并从 ~/.bashrc 中删除任何设置它的行。它会导致您的任何 conda 环境的 Python 在它们自己之前查看该位置。