![](/img/trans.png)
[英]Why can I import a Python module from command line, but not from script?
[英]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.