如何在 Python 3.x 和 Python 2.x 中使用 pip

Posted

技术标签:

【中文标题】如何在 Python 3.x 和 Python 2.x 中使用 pip【英文标题】:How to use pip with Python 3.x alongside Python 2.x 【发布时间】:2012-07-01 09:09:23 【问题描述】:

我安装了 Python 3.x(除了 Ubuntu 上的 Python 2.x)并慢慢开始配对我在 Python 2.x 中使用的模块。

所以我想知道,我应该采取什么方法通过在 Python 2.x 和 Python 3.x 中使用 pip 来简化我的生活?

【问题讨论】:

就个人而言,我会避免安装全局包并使用 virtualenv。然后,您从虚拟环境中为每个项目使用 pip,并且您始终使用正确的。 【参考方案1】:

您应该采取的方法是为 Python 3.2 安装 pip

您可以通过以下方式执行此操作:

$ curl -O https://bootstrap.pypa.io/get-pip.py
$ sudo python3.2 get-pip.py

然后,您可以使用 pip-3.2 安装 Python 3.2 的东西,并使用 pip-2.7 安装 Python 2-7 的东西。 pip 命令最终会指向其中之一,但我不确定是哪个,所以你必须检查一下。

【讨论】:

这很简单,谢谢。 sudo python3.2 get-pip.py/usr/local/bin 中安装 pippip-3.2 脚本,并且两者在逻辑上都使用 Python 3。sudo python get-pip.py 在这里安装 pippip-2.7,所以在这种情况下 pip 使用 Python 2.7。我另外创建了指向pip-3.2 的链接为pip3 并测试:完美! :) 在 Fedora 上,它是 pip3.3,即 pip 和版本之间没有破折号。检查 /usr/bin 以查看您那里有哪些 pip 版本。 [x]Ubuntu 也在使用[ pip2 | pip2.7 | pip3 | pip3.4 ]。这是pip的变化还是不同系统之间的不同? 执行后我得到You're using an outdated location for the get-pip.py script, please use the one available from https://bootstrap.pypa.io/get-pip.py 那就这样吧。 :-)【参考方案2】:

你也可以使用apt-get:

apt-get install python3-pip

根据我的经验,这也很流畅,而且您可以从 apt-get 中获得所有好处。

【讨论】:

12.04 我不能这样做。 我成功使用了这个(即sudo apt-get install python3-pip),然后可以使用“sudo python3 -m pip install package”安装python3包。 到今天为止,我相信 apt-get 可以为您提供过时的 1.5.6 版本;如果您不希望在pip freeze > requirements 期间出现 AssertionErrror(或其他潜在错误),请从源代码安装最新版本,以免您头疼。 必须是root才能安装python3-pip 尽管使用python3.7 安装pip pip 仍然默认使用 ubuntu 14.04 上的 Python 2.7 :( 我已经设法将 pip 更新到最新版本,即 19.3.1 但是它仍然默认为python2.7。如何使它与python 3.7一起使用?【参考方案3】:

首先,使用以下命令安装 Python 3 pip:

sudo apt-get install python3-pip

然后,使用Python 3 pip 使用:

pip3 install <module-name>

对于Python 2 pip 使用:

pip install <module-name>

【讨论】:

没有 Python 2 pip,这取决于您使用的操作系统。例如,在 Arch Linux pip --version 上,默认情况下在 python 3.6 上运行。 这对我来说似乎是最直观、最简单的解决方案,谢谢!【参考方案4】:

最短路径:

python3 -m pip install package
python -m pip install package

【讨论】:

``` (test-exif) alex@alex-xps-13-9370:~/projects/oe/app/exif$ python3 -m pip install exif /usr/bin/python3: 否名为 pip ``` 的模块 @axd 在这种情况下首先使用sudo apt-get install python3-pip 安装pip。假设您使用的是 python3。【参考方案5】:

如果你不想每次使用时都指定版本pip

安装点子:

$ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python3

并导出路径:

$ export PATH=/Library/Frameworks/Python.framework/Versions/<version number>/bin:$PATH

【讨论】:

您能详细说明一下吗?我不明白安装 distribute 与不必指定要使用的 pip 版本有什么关系。【参考方案6】:

在 Windows 中,首先安装 Python 3.7,然后安装 Python 2.7。然后,使用命令提示符:

pip 安装 python2-module-name

pip3 安装 python3-module-name

就是这样

【讨论】:

非常感谢!在 pip 之后缺少 3 是我的问题。【参考方案7】:

这在 OS X 上对我有用:(我这么说是因为有时 mac 拥有每个开源工具的“自己的”版本,你不能删除它,因为“它的改进”使其对其他苹果来说是独一无二的东西可以工作,如果你删除它,事情就会开始下降)

我按照@Lennart Regebro 提供的步骤获取 python 3 的 pip,但是 python 2 的 pip 仍然首先在路径上,所以...我所做的是在 /usr 中创建一个指向 python 3 的符号链接/bin(事实上,我也做了同样的事情让我的 2 条蟒蛇安静地运行):

ln -s /Library/Frameworks/Python.framework/Versions/3.4/bin/pip /usr/bin/pip3

注意我在末尾添加了一个3,所以基本上你要做的就是使用pip3 而不仅仅是pip

这篇文章很旧,但我希望有一天能对某人有所帮助。这在理论上应该适用于任何 LINUX 系统。

【讨论】:

【参考方案8】:

在 Suse Linux 13.2 上,pip 调用 python3,但 pip2 可用于使用较旧的 python 版本。

【讨论】:

在 voidlinux 上也一样【参考方案9】:

请注意,在 msys2 上,我发现这些命令很有帮助:

$ pacman -S python3-pip
$ pip3 install --upgrade pip
$ pip3 install --user package_name

【讨论】:

【参考方案10】:

认为这是一个老问题,我想我有更好的解决方案

    要将 pip 用于 python 2.x 环境,请使用此命令 -

    py -2 -m pip install -r requirements.txt

    要将 pip 用于 python 3.x 环境,请使用此命令 -

    py -3 -m pip install -r requirements.txt

【讨论】:

以上是关于如何在 Python 3.x 和 Python 2.x 中使用 pip的主要内容,如果未能解决你的问题,请参考以下文章

python argsort()究竟如何返回的?

如何在 Python 3 中写上标? [复制]

如何在同一台电脑(windows系统)上同时搭建python2和python3环境

如何成为python圣斗士之第一个python程序

当另外两个 2.X 也在 MacO 上时,如何将第三方库安装到 Python 3.X? [复制]

Python 2.7.x 和 3.x 版本的重要区别