我如何在Python交互式shell中运行pip?

10 浏览
0 Comments

我如何在Python交互式shell中运行pip?

我想在Python交互式shell中安装第三方Python模块,而不是使用终端或命令提示符。我应该运行哪些Python指令来完成这个操作,以便我可以导入安装的模块并开始使用它?\n(对于那些想知道为什么我要这样做的人:我需要可靠的指令来为不了解如何使用命令行的用户安装第三方模块,他们可能不知道如何设置他们的PATH环境变量,可能安装了多个Python版本,并且可能使用Windows、Mac或Linux,因此指令将完全不同。这是一个独特的设置,在这种特殊情况下,“只需使用终端窗口”不是可行的选项。)

0
0 Comments

如何从Python交互式shell运行pip?

有时候,我们想要在Python交互式shell中运行pip命令,但是直接在shell中输入pip命令是无效的。下面是一种解决方法:

在交互式shell中运行以下命令,将MODULE_NAME替换为要安装的模块的名称:

import sys, subprocess; subprocess.run([sys.executable, '-m', 'pip', 'install', '--user', 'MODULE_NAME'])

你将会看到pip的输出。你可以通过尝试导入模块来验证安装是否成功:

import MODULE_NAME

如果导入没有出错,那么模块已成功安装。

为什么要这样做呢?大多数情况下,更简单和更容易的方法是使用以下步骤:退出交互式shell,运行pip install module_name命令,然后再进入交互式shell,并导入模块。

原因在于,如果环境变量PATH没有正确设置,将无法找到pip,并且根据操作系统,设置PATH的指令也会有所不同。如果安装了多个版本的Python,可能会将模块安装到错误的版本中,导致更多的混乱。因此,我需要一个简单的“在交互式shell中输入以下命令”的指令,无论环境设置如何,都能正常工作。

这种使用subprocess.run([sy.executable, *args])的技巧是我知道的从脚本中运行Python程序的最佳方法,尤其是对于像pip这样没有公共API的程序。

虽然我没有深入研究过这个主题,但是如果我理解正确的话,这种方法可能会产生一些不希望的副作用,需要注意。你可以在pip官方文档中了解更多信息。

0