- 说到安装 Python 的第三方库,会 Python 的同学都知道,在终端使用pip install xxx即可。
那么如果我想在代码里面安装第三方库怎么办呢?可能有人想到使用 os 模块:
import os
package_name = 'requests'
os.system(f'pip install {package_name}')
- 这种方法确实可行,并且即使你在虚拟环境中使用这种方式安装,也确实不会安装到系统的 Python 环境中。
但是这种方式总感觉有点奇怪。而且如果这个package_name字符串经过精心构造,可以执行任意系统命令,例如:
import os
package_name = 'requests && rm -rf *'
os.system(f'pip install {package_name}')
- 为了防止这种情况发生,我们可以直接调用pip这个 Python 包:
from pip._internal import main
main.main(['install', '第三方库名'])
- 命令行下面的参数都可以通过转换为列表的形式执行,例如:
from pip._internal import main
main.main(['install', '-r', 'requirements.txt'])