pip将2.7的包安装到/usr/local/lib/python3.2/dist-packages

0 投票
2 回答
1643 浏览
提问于 2025-04-17 23:37

大家好。

我正在尝试用 pip 安装一些包,比如 tornado,但是它把这些包安装到了 /usr/local/lib/python3.2/dist-packages 这个地方,这样 python2.7 就找不到它们了。

我哪里搞错了呢?我需要设置 PYTHONPATH 之类的吗?(这听起来有点危险)。

$ /usr/local/bin/pip --version
pip 1.4.1 from /usr/local/lib/python3.2/dist-packages/pip-1.4.1-py3.2.egg (python 3.2)\

我用的是 Ubuntu 12.04 LTS

回答: sudo mv /usr/local/bin/pip /usr/local/bin/pip3.2

2 个回答

2

你有安装Python2吗?

我不知道你用的是哪个系统,但有时候会有一个叫pip2的工具,它是专门用来管理Python2的包(比如在Arch Linux系统上就有这个,具体可以看这个链接)。

如果没有的话,可以去看看这个网站http://pip.readthedocs.org/en/latest/installing.html,上面有更多的安装说明。

0

$PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

这里的意思是,$PATH是一个环境变量,它告诉系统在哪里可以找到可执行的程序。这个路径包含了多个文件夹,系统会在这些文件夹里寻找你输入的命令。

在这个例子中,pip3.2的程序放在了/usr/local/bin这个文件夹里,名字叫pip,而pip2.7则在/usr/bin文件夹里,也叫pip。所以当你输入pip这个命令时,系统调用的是3.2版本的pip。

为了修复这个问题,我只需要用命令sudo mv /usr/local/bin/pip /usr/local/bin/pip3.2把pip的名字改成pip3.2,然后重启我的bash(命令行),这样系统就能重新识别路径了。

我也不知道为什么会出现这样的情况 :)

撰写回答