繁体   English   中英

从命令行脚本导入或安装模块

[英]import or install module from a command line script

我有一个脚本,看起来像这样:

import pip
import sys

def main(argv):
    ...[does stuff]...

if __name__ == "__main__":
    main(sys.argv[1:])

我想实现我在导入包的堆栈上找到的此功能(或在必要时安装它)。

def import_or_install(package):
try:
    __import__(package)
except ImportError:
    pip.main(['install', package])

我的愿景是,如果我在随机计算机上运行脚本,如果未安装运行所述脚本所需的软件包,则脚本会自动执行; 否则,请导入模块。

当我尝试运行它时,我收到一个NameError,指出我在main()中调用的模块未定义。

链接到我找到该功能的位置: 检查模块是否存在,如果没有安装

如果这样的话,我在Question中的理解:

import pip

not_installed = []

try:
 import test1

except ImportError,err:
    k= str(err).split(' ')
    not_installed.append(k[-1])

for i in not_installed:
   pip.main(['install',i])

这里的test1是要运行的文件,将其相应地转换为cli

PS:检查了1导入错误消息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM