在代码中安装 python 模块

新手上路,请多包涵

我需要直接在脚本中安装来自 PyPi 的包。 Maybe there’s some module or distutils ( distribute , pip etc.) feature which allows me to just execute something like pypi.install('requests') and requests will安装到我的 virtualenv 中。

原文由 chuwy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 235
2 个回答

官方推荐的从脚本安装包的方法是通过子进程调用 pip 的命令行界面。 pip 不支持此处提供的大多数其他答案。此外,自 pip v10 以来,所有代码都已移至 pip._internal 正是为了向用户明确表示不允许以编程方式使用 pip。

使用 sys.executable 确保您将调用相同的 pip 与当前运行时关联。

 import subprocess
import sys

def install(package):
    subprocess.check_call([sys.executable, "-m", "pip", "install", package])

原文由 Aaron de Windt 发布,翻译遵循 CC BY-SA 4.0 许可协议

您还可以使用类似的东西:

 import pip

def install(package):
    if hasattr(pip, 'main'):
        pip.main(['install', package])
    else:
        pip._internal.main(['install', package])

# Example
if __name__ == '__main__':
    install('argh')

原文由 Rikard Anglerud 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题