我应该使用pip还是pip3?

13 浏览
0 Comments

我应该使用pip还是pip3?

每次我安装一个新的Linux发行版时,我都会使用sudo apt-get install python3命令。然而,一旦安装完成,我总是感到困惑。python是指Python 2.7,而python3是指Python 3.x。此外,pip用于Python 2,而pip3用于Python 3。尽管如此,我在互联网上看到的大部分教程仍然使用传统的pip install,尽管它是针对Python 3的。

我该如何处理这个问题?我是否应该继续在使用Python时每次都加上这个烦人的3pip3ipython3python3...)?在我大部分的讲座中,我看到创建一个符号链接python->python3被认为是一种不好的做法。这是正确的吗?

0
0 Comments

在某些操作系统中(比如macOS),将python符号链接到python3是一个不好的做法。有时候,操作系统的内部工具和任务深度依赖python指向Python 2解释器。删除内置的Python 2解释器(或将python别名为Python 3解释器)会导致一些问题。从macOS Ventura(v 13)开始,操作系统不再要求或提供安装Python 2的选项。越来越多的Linux发行版也是如此,之前依赖Python 2的系统工具也不再需要了。

上述内容中提到了一种解决方法,即不要将python链接到python3。那么,我们在使用pip时应该使用pip还是pip3呢?

解决方法很简单,只需要根据系统中的Python版本来决定使用pip还是pip3。如果系统中同时安装了Python 2和Python 3,并且默认使用Python 2,那么应该使用pip来安装Python 2的包。如果想要安装Python 3的包,可以使用pip3。这样可以避免混淆和冲突。

以下是使用pip安装Python 2包的示例代码:

pip install package_name

以下是使用pip3安装Python 3包的示例代码:

pip3 install package_name

总结起来,根据系统中的Python版本来决定使用pip还是pip3,可以避免因为版本冲突而导致的问题。

0
0 Comments

无论使用pip还是pip3还是gaschplutzga这样的命令,取决于多个因素。如果只有Python 3,并且有一个名为pip的命令,那么可以安全使用它。随着时间的推移,这将在越来越多的地方成为简单、明显、安全的答案。如果同时安装了Python 2和Python 3,并且系统中有一个名为pip3的命令,那么可能应该使用它。通常情况下,可以遍历PATH并查找合适名称的命令。在类Unix系统上,可以尝试使用command -V pip3command -V pip命令。如果收到如上所示的输出,可以尝试使用完整路径和添加--version选项来识别它们自己。例如,/opt/random/nonstandard/whoa/pip --version可能会识别自己属于Python版本3.2.1。如果这是您想要的版本,并且它在PATH的顶部,那么在键入pip时可以简单地依赖于PATH来获取此版本。如果不是,则可以重新排列PATH(但要了解这会更改您更改目录位置的所有命令的解析顺序)或者在个人帐户中创建一个简单的别名或包装器,以绕过此特定命令的PATH。在类Unix系统上,这可能如下所示:

alias pip=/opt/random/nonstandard/whoa/pip

(要使其在会话间保持持久,可以将其添加到.profile或类似的文件中-对于Bash,请尝试存在的.bash_profile;对于Zsh,请尝试.zshrc。每个shell的完整操作比我在这些狭窄的括号中能够容纳的要复杂得多);在Windows上,您可能可以通过设置环境变量PY_PYTHON来控制此行为,但是背后有一个巨大的问题。某些网站和操作系统/发行版可能具有引入其他选项的额外包装器或约定;如果使用特定的软件包管理器,也可以研究其文档。(一个常见的例子是Anaconda,尽管我不认为它会影响pip的命名或位置。)一个常见的安排是使用python -m pip而不是裸露的pip命令;这合理地期望无论您运行哪个python版本,它都能够找到其模块库中特定版本的pip。关于如何选择特定pip二进制文件的所有内容也适用于查找特定python二进制文件的逻辑;因此(只要它没有病态地配置),/opt/random/nonstandard/whoa/python -m pip将为该Python版本运行正确的pip版本。您可以说这只是把问题推到了另一个角落,但如果您有多个Python版本,并且有一种简单、统一的方式来选择每个版本的正确pip,那么这很方便。在Windows上,可能使用py -m pip并期望py包装器选择正确的Python二进制文件。如果同时安装了Python 2和Python 3,则py命令提供方便的功能,可以选择Python 2或Python 3。未来计划在其他平台上提供此包装器。

0
0 Comments

在使用Python安装包时,我们通常会使用pip命令。然而,有时候会出现一个问题:到底是应该使用pip还是pip3呢?这个问题的出现是因为在不同的系统中,可能存在多个版本的Python解释器。为了解决这个问题,可以使用以下方法:

1. 使用python3 -m pippython -m pip命令。这将使用你想要的Python版本的正确pip。这种方法在pip文档中有提到:

python -m pip使用你指定的Python解释器来执行pip命令。因此,/usr/bin/python3.7 -m pip意味着你正在执行位于/usr/bin/python3.7的解释器的pip命令。

2. 不要将python->python3进行符号链接,因为某些程序可能依赖于python是Python 2。尽管如此,我见过一些Dockerfile将python->python3进行了符号链接,例如TensorFlow的CPU Dockerfile(在Docker镜像中这不是一个问题)。巧合的是,这个Dockerfile使用了我推荐的python3 -m pip install语法。

为什么教程中没有人使用python3 -m pip命令呢?因为通常人们认为它是指代“以任何方式使用的pip”。在我的系统上,pip指向的是由miniconda打包的python3的pip。在其他系统上可能会有所不同。我也很少见到有人使用python3 -m pip,但pip文档中确实包含了该命令的介绍。

所以,如果你在使用pip时遇到了问题,可以尝试使用python3 -m pippython -m pip命令来解决。这样可以确保你使用的是正确的Python版本的pip。

0