如何检查是否在Python中安装了模块,如果没有,则在代码中安装它?

Gameskiller01:

我想为我的代码安装模块'mutagen'和'gTTS',但我想拥有它,因此它将在没有模块的每台计算机上安装模块,但是如果有的话,它将不会尝试安装它们他们已经安装了。我目前有:

def install(package):
    pip.main(['install', package])

install('mutagen')

install('gTTS')

from gtts import gTTS
from mutagen.mp3 import MP3

但是,如果您已经有了模块,则每次打开程序时,只会在程序的开始添加不必要的混乱。

theGirrafish:

编辑-2020/02/03

pip自从我发布此答案以来,模块已更新了很多。我已经使用正确的方式更新了该代码段,以安装缺少的依赖项,即使用subprocessand pkg_resources和not pip

要隐藏输出,可以将子流程输出重定向到devnull:

import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)

就像@zwer提到的一样,以上方法可以工作,尽管它不被视为打包项目的正确方法。要更深入地了解这一点,请阅读页面如何打包Python App

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ModuleNotFoundError:即使在Pycharm中安装了pip请求之后,也没有名为“ requests”的模块

在代码中安装python模块

如何检查Perl模块是否已安装在系统中

如何检查是否安装了PowerShell模块?

检查是否安装了apt-get软件包,如果不在Linux上,请安装它

如何检查是否安装了Apple Maps

如何检查Ubuntu中是否已经安装了R?

如何检查odoo中是否安装了模块或模型是否存在

如何检查Unix shell脚本中是否安装了Docker?

检查C#中是否安装了Powershell模块

如果安装了Python,SimpleHTTPServer是否可用?

如何检查Docker中是否安装了Oracle?

如何检查是否安装了CAPICOM?

即使安装了networkx,它仍然会引发ModuleNotFoundError:没有名为“ networkx”的模块

检查Chocolatey中是否安装了Chocolatey

如何检查Inno Setup中是否安装了特定的Python版本?

如何检查是否安装了特定的程序?

如何检查ubuntu服务器中是否安装了upstart,如何安装?

如何检查是否在Python中安装了模块,并在需要时进行安装?

如何检查Firebug是否安装了javascript?

如何检查是否安装了共享库?

检查是否在SSH会话中安装了软件

检查是否从Ubuntu清单中安装了所有默认软件包

在RHEL 6上,我似乎已经安装了EPEL,但是它没有出现在yum中。我该如何激活它?

检查bash脚本中是否安装了无线工具

如何以编程方式检查是否已安装getopts?如果没有,请安装

在外部 SSD 中安装了 Kubuntu,现在没有它我无法加载 Windows

节点模块没有输出 - 我是否误解了如何安装它?

检查模式中是否安装了自定义类型