我得到了如何将文件作为参数传递到How to access variables from file passed through command line
的答案但是我要分开问,因为不要混合两个。
我能够将传递的文件中的变量作为__import__(sys.argv[1])
访问并调用python test.py config
。但我可以通过给pythonpath调用config.py文件吗?是/ {/ 1 {}还是python test.py ~/Desktop/config
?因为如果我这样做,我会得到PYTHONPATH='~/Desktop/' python test.py config
。
答案 0 :(得分:1)
您正尝试使用__import__
调用导入python模块。它只接受模块名称。如果您需要向PYTHONPATH
添加目录,可以将其添加到sys.path
,然后导入模块:
#File: ~/Projects/py/main.py
import sys
python_path = sys.argv[1]
module_name = sys.argv[2]
sys.path.insert(1, python_path)
print "Importing {} from {}".format(module_name, python_path)
__import__(module_name)
现在我在masnun.py
上创建了另一个名为~/Desktop
的文件:
# File: ~/Desktop/masnun.py
print "Thanks for importing masnun.py"
现在我尝试像这样运行main.py
:
python main.py ~/Desktop masnun
所以我将Python路径传递为argv[1]
,模块名称传递为argv[2]
。现在它有效。我得到了这个输出: