繁体   English   中英

如何使用pip为python3安装包? 现在它总是为 python2 安装

[英]how to install package for python3 using pip? Now it always install for python2

我已经困惑了一段时间。 我现在无法为我的 python35 安装/升级任何软件包。 我在 mac 上有 python27 和 python35(通过 anaconda)。 每当我想通过 pip 安装 python 包时,都会调用与 python2 配对的包。

转到 anaconda 文件夹(安装我的 python35 的位置): ls -al | grep pip 我得到了结果:

-rwxrwxr-x    1 xx  staff      113 Jul 26  2016 conda-pipbuild
-rwxr-xr-x    1 xx  staff      230 Dec 17 21:40 pip
-rwxr-xr-x    1 xx  staff      230 Dec 17 21:40 pip3
-rwxr-xr-x    1 xx  staff      230 Dec 17 21:40 pip3.5

在我的 .bashrc 文件中,我定义了:

 alias python2=/usr/bin/python2.7
 alias python=~/anaconda/bin/python3.5

当我输入 python2 时:

$ python2
Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

当我输入 python 时:

   $ python
    Python 3.5.2 |Anaconda custom (x86_64)| (default, Jul  2 2016, 17:52:12) 
    [GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.

输入时:pip -V

pip 9.0.1 from /Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)

输入 pip3 -V 时

-bash: pip3: command not found

哪个点

/usr/local/bin/pip

要重新安装 pip3,我从https://pip.pypa.io/en/latest/installing/下载了 get-pip.py 从它说的文档中,它将根据运行脚本的 Python 版本安装正确的 pip。 因此,我跑了

python get-pip.py 
Requirement already up-to-date: pip in /Users/xxx/anaconda/lib/python3.5/site-packages

下面显示了当我尝试使用 pip 安装软件包时:

pip install tushare --upgrade
Collecting tushare
  Using cached tushare-1.0.7-py2-none-any.whl
Requirement already up-to-date: lxml>=3.8.0 in /Library/Python/2.7/site-packages (from tushare)

PIP 也是一个 python 包。 您可以使用,

python3 -m pip install foo

默认情况下,Anaconda 附带的pip不会获取pip3的符号链接。 您可以通过以下方式检查您正在使用的pip

which pip

很可能,它不是来自 Anaconda 3 安装的 pip。 修复它的方法非常简单:自己创建符号链接。 由于 Anaconda3 的二进制文件夹已经在你的路径中(你可以通过which pythonwhich python3来查看),你可以去anaconda3/bin文件夹

ls -al | grep pip

你可能会看到这样的东西

-rwxrwxr-x 1 youraccount youraccount     120 Jul 13 21:58 pip

然后创建一个指向它的符号链接

ls -s pip pip3

就是这样。 您可以再次尝试which pip3 ,看看是否是您要引用的 pip。

编辑

我注意到您正在使用alias来访问 Anaconda 的 python。 由于anaconda/bin下有很多有用的工具,因此需要将整个文件夹放入您的路径中。 同时,最好删除alias ,以防将来发生任何奇怪的事情。

要将anaconda/bin添加到您的路径中,首先您需要检查 bash 中的PATH变量是什么样的

echo $PATH

我猜您在打印输出中的任何地方都没有anaconda/bin 否则,您应该可以毫无问题地使用 pip3。

如果您使用 anaconda 的所有默认选项,您应该在.bashrc.profile.bash_profile包含这一行

export PATH="/Users/youraccount/anaconda3/bin:$PATH"

如果你已经有了这个,运行source .bashrc (或包含该行的文件),你应该能够在你的PATH看到anaconda/bin

如果没有,请将行放在那里,然后获取文件或重新启动终端。 另外,删除 python3 的别名。

最后,从顶部开始这个回答帖子,用你想要的名字为pip创建符号链接(比如, pip3

这应该可以解决您的问题。

这就是我最终解决自己问题的方法。 但这对我来说没有意义。 任何人都可以帮助解释为什么它解决了这个问题?

  1. 我尝试了这里发布的解决方案(没有帮助或我不明白)
  2. 我决定使用conda来安装包,因为我的python3是用Anaconda安装的,而我的python2是单独安装的。
  3. 我发现我的终端无法理解“conda”
  4. 我输入了“export PATH=~/anaconda/bin:$PATH”,根据conda 命令在 Windows 10 上无法识别
  5. 突然,pip install 正确地将包安装到python3。 输入 pip -V 给我 pip3。

首先,安装 pip3 :

sudo apt-get update

sudo apt install python3-pip

现在检查 pip3 的版本:

pip3 -V

使用 pip3 为 python3 安装包:

sudo  pip3 install django

许多 python 包也需要 dev 包,所以也安装它:

sudo apt-get install python3-dev

您还可以为 python3 创建虚拟环境并使用 pip 为 pyhton3 安装包:

virtualenv -p /usr/bin/python3 envs
source envs/bin/activate
pip install package-name

有关 conda 环境的更多信息,请参阅此处

描述

在大多数情况下,python2 没有安装pip 我使用的是 macOS,我使用这些命令来运行:

解决方案

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
sudo python2 get-pip.py 

然后使用:

pip2 install <package_name> 
#or 
python2 -m pip install <package_name> 

暗示:

根据个人经验,我建议不要在.bashrc.zshrc中为您的 python 版本添加别名。 它会影响其他安装或系统设置(例如,如果您使用 vim)。 相反,在运行代码时指定 python 的版本

python2 <file_name>
# or 
python3 <file_name> 

并安装软件包

pip3 install <package_name>
# or 
pip2 install <package_name>

这也适用于Ananconda附带的 python 版本。 我希望这是有帮助的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM