[英]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 python
或which 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
)
这应该可以解决您的问题。
这就是我最终解决自己问题的方法。 但这对我来说没有意义。 任何人都可以帮助解释为什么它解决了这个问题?
首先,安装 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.