如何检测脚本中的 python 包名
How to detect the python package name inside the script
我正在尝试在 python 脚本中安装 pip 库,所以我会发出命令:
os.system('python -m pip install requests > null 2>&1')
然而,此脚本将由不同主机上的不同用户 运行 和某些主机上的 python
软件包安装为 python2
或 python3
(与 pip
) 而不仅仅是 python
。这使得上面的命令不起作用,因为它没有检测到名称 python
.
那么有什么方法可以检测客户端主机上的 python
软件包名称以便安装可以进行吗?
(我知道最好使用 subprocess
库来安装 pip 包,但出于特定原因我使用 os.system
)。
您可以使用 sys.executable
获取 python
的完整路径:
>>> import sys
>>> sys.executable
'/home/***/.pyenv/versions/3.8.1/bin/python3.8'
然后使用该路径 运行 python
os.system('{} -m pip install requests > null 2>&1'.format(sys.executable))
我正在尝试在 python 脚本中安装 pip 库,所以我会发出命令:
os.system('python -m pip install requests > null 2>&1')
然而,此脚本将由不同主机上的不同用户 运行 和某些主机上的 python
软件包安装为 python2
或 python3
(与 pip
) 而不仅仅是 python
。这使得上面的命令不起作用,因为它没有检测到名称 python
.
那么有什么方法可以检测客户端主机上的 python
软件包名称以便安装可以进行吗?
(我知道最好使用 subprocess
库来安装 pip 包,但出于特定原因我使用 os.system
)。
您可以使用 sys.executable
获取 python
的完整路径:
>>> import sys
>>> sys.executable
'/home/***/.pyenv/versions/3.8.1/bin/python3.8'
然后使用该路径 运行 python
os.system('{} -m pip install requests > null 2>&1'.format(sys.executable))