【发布时间】:2015-11-26 13:13:54
【问题描述】:
我有一个名为 birdid 的 conda env。
在环境中工作时(即我做了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
什么都不返回
/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())
编辑:回显 $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())
很奇怪。
【问题讨论】:
-
可以加
which -a pip吗? -
完成。更糟糕的是,我的系统中似乎有两个pip。
-
env 中的 pip 可以是符号链接吗?
-
扫描整个路径时有多个
pip版本是很正常的。更令人惊讶的是,您的环境中的 pip 版本没有列出,尽管它确实应该列出。我会尝试conda install --force pip,然后再检查which pip。如果这没有帮助,您可以添加echo $PATH的输出以进行进一步调试。 -
我会检查是否设置了
PYTHONPATH或PYTHONHOME并尝试取消设置。这真的很奇怪,我的想法已经不多了。