我有一个看起来像这样的脚本:
import pip
import sys
def main(argv):
...[does stuff]...
if __name__ == "__main__":
main(sys.argv[1:])
我想实现我在堆栈上找到的导入包的函数(或者如果nescessary安装它)。
def import_or_install(package):
try:
__import__(package)
except ImportError:
pip.main(['install', package])
我的愿景是,如果我在随机计算机上运行脚本,如果未安装运行所述脚本所需的打包,脚本会自动执行;否则,导入模块。
当我尝试运行它时,我得到一个NameError,指出我在main()中调用的模块没有定义。
链接到我找到该功能的地方:Check if module exists, if not install it
答案 0 :(得分:0)
我在问题中理解,如果是这样的话:
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
P.S:检查1导入错误消息