- 說到安裝 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'])