如何从 Python 交互式 Shell 运行 Pip

更新 2022-11-20:我创建了 pipfromrepl 模块来简化这个过程。

对于学习编码的初学者来说,使用 pip 工具安装 Python 模块非常困难。 有几个潜在的问题:多个 Python 安装、虚拟环境、PATH 环境变量设置。 您必须介绍命令行终端和文件系统导航,以及 Windows 和 Mac/Linux 之间的区别。 但是,您可以从交互式 shell 运行一行代码来为您处理所有这一切。

要安装 Python 模块,请从交互式 shell(即带有 >>> 提示符的东西)运行以下代码:

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

如果您从虚拟环境中运行交互式 shell 并且收到如下错误 ERROR: Can not perform a '--user' install. User site-packages are not visible in this virtualenv.,然后删除 --user 选项:

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

通常不建议运行某些网站告诉您的代码而不了解它的作用,所以让我们分解每个部分。

import sys, subprocess;

这将导入 syssubprocess 内置模块,以便我们可以访问 sys.executable 变量和 subprocess.run() 功能。 这些模块位于 Python 的标准库中,因此它们始终已随 Python 安装。

分号让 Python 认为它是“行尾”,这样我们就可以在同一行上放置两条 Python 指令。

subprocess.run(

此函数调用模拟从终端或命令提示符窗口运行命令,但现在是从 Python 代码完成的。

sys.executable,

sys.executable 变量包含当前运行交互式 shell 的 Python 解释器的文件路径。 如果您有多个 Python 安装或虚拟环境并且想要运行您正在使用的当前 Python 解释器,这将特别有用。

'-m', 'pip', 'install', 'MODULE_NAME'])

当您使用以下命令运行 Python 解释器时 -m 选项,你正在运行一个模块(在我们的例子中,标准 pip 模块)作为脚本。 跑步 python -m pip 与运行相同 pip 工具本身。 这 'install', 'MODULE_NAME' options 告诉 pip 从在线 Python Packaging Index 下载并安装模块。 运行这些说明时,您的计算机需要连接到互联网。

运行这些指令后,您应该会在窗口中看到 pip 的输出。 例如,当我安装 pyrect 模块时,交互式 shell 如下所示:

>>> import sys, subprocess; subprocess.run([sys.executable, '-m', 'pip', 'install', 'pyrect'])
Collecting pyrect
  Using cached PyRect-0.2.0.tar.gz (17 kB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: pyrect
  Building wheel for pyrect (setup.py) ... done
  Created wheel for pyrect: filename=PyRect-0.2.0-py2.py3-none-any.whl size=11196 sha256=5b7fb5f14167a70c955fff3bb14eecfa557f07747f27a03b5c63834173a58f49
  Stored in directory: c:usersalappdatalocalpipcachewheels2580fa27bb4a1c2e21f64ec71390489d52e57b7cc8afbe79bd595c5e
Successfully built pyrect
Installing collected packages: pyrect
Successfully installed pyrect-0.2.0
CompletedProcess(args=['C:\Users\Al\.virtualenvs\deleteme-NM1HlCaN\Scripts\python.exe', '-m', 'pip', 'install', 'pyrect'], returncode=0)

要验证模块是否安装正确,请运行 import MODULE_NAME. 如果没有出现错误信息,说明模块安装成功。

如果您正在教授 Python 课程或举办 Python 研讨会,当您需要它们从 PyPI 安装第三方模块时,使用此 Python 代码是避免混淆的好方法。 如果您想更详细地了解命令行、环境变量和类似主题,您可以阅读我的免费书籍 Beyond the Basic Stuff with Python 的第 2 章。

阅读更多

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注