我有一个简单的脚本,它在命令行上接受用户输入并返回一个数据帧。
def import_or_install(package):
try:
__import__(package)
print "Importing: "+ package
except ImportError:
print "\nInstalling:"+ package
pip.main(['install', package])
import pip
import argparse
#import pandas
def main():
import_or_install("pandas")
parser = argparse.ArgumentParser(usage = argparse.SUPPRESS)
parser.add_argument('-i',
nargs='+',
required=True)
args = parser.parse_args()
inputs = args.i
print pandas.DataFrame(inputs)
if __name__ == "__main__":
main()
当我正常导入pandas(导入pandas)时,脚本可以正常工作。但是,当我尝试使用import_or_install(包)函数导入pandas时,我收到以下错误:
NameError:全球名称' pandas'未定义
我的目标是能够运行此脚本,而无需用户在运行脚本之前安装模块。
这种方法是否可行?
要在comandline类型
中运行脚本python filename.py -i ,然后列出一些用空格分隔的数字。 例如:" python test.py -i 1 2 3 4"
答案 0 :(得分:0)
import pandas
def main():
import_or_install("pandas")
您可以在包可用之前尝试导入pandas。进口 它安装后:
def main():
import_or_install("pandas")
import pandas