python調用pip

  • 說到安裝 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'])
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章