我想为我的代码安装模块“mutagen”和“gTTS”,但我想要它,这样它就会在每台没有它们的计算机上安装这些模块,但它不会尝试安装它们,如果他们已经安装好了。我目前有:
def install(package):
pip.main(['install', package])
install('mutagen')
install('gTTS')
from gtts import gTTS
from mutagen.mp3 import MP3
但是,如果您已经拥有这些模块,这只会在您打开程序时给程序的开头添加不必要的混乱。
原文由 Foxes 发布,翻译遵循 CC BY-SA 4.0 许可协议
编辑 - 2020/02/03
自从我发布此答案以来,
pip
模块已经更新了很多。我已经用安装缺失依赖项的正确方法更新了代码片段,即使用subprocess
和pkg_resources
,而不是pip
.要隐藏输出,您可以将子进程输出重定向到 devnull:
就像提到的@zwer 一样,上面的方法有效,尽管它不被视为打包项目的正确方法。要更深入地了解这一点,请阅读 如何打包 Python 应用程序 页面。