首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在代码中安装python模块

在代码中安装python模块
EN

Stack Overflow用户
提问于 2012-09-09 01:33:03
回答 9查看 368.5K关注 0票数 398

我需要在我的脚本中直接从PyPi安装一个包。也许有一些模块或distutils (distributepip等)。允许我只执行pypi.install('requests')之类的功能,请求将被安装到我的virtualenv中。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2018-05-09 21:47:16

官方推荐的从脚本安装包的方法是通过子进程调用pip的命令行界面。Most other answers presented here are not supported by pip。此外,从pip v10开始,所有代码都被精确地移到了pip._internal上,以便让用户清楚地知道,不允许以编程方式使用pip。

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

代码语言:javascript
复制
import subprocess
import sys

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

Stack Overflow用户

发布于 2013-04-11 21:54:43

您还可以使用以下内容:

代码语言:javascript
复制
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')
票数 407
EN

Stack Overflow用户

发布于 2014-07-16 14:45:37

如果您想使用pip安装所需的包并在安装后导入,您可以使用以下代码:

代码语言:javascript
复制
def install_and_import(package):
    import importlib
    try:
        importlib.import_module(package)
    except ImportError:
        import pip
        pip.main(['install', package])
    finally:
        globals()[package] = importlib.import_module(package)


install_and_import('transliterate')

如果您以用户身份安装包,则可能会遇到不能只导入包的问题。有关更多信息,请参见How to refresh sys.path?

票数 83
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12332975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档