要查找模块的路径,我想使用以下脚本:
import <module_name>
print <module_name>.__file__
有效。
但是,我想让它更灵活,接收一个参数来指定模块的名称。
如果我将脚本命名为searchModulePath.py,我想用searchModulePath.py <some_module_name>
运行它。
以下是我的尝试:
#!usr/bin/python
import sys
print sys.argv
import sys.argv[1]
print sys.argv[1].__file__
但它不起作用:
File "searchModulePath.py", line 5
import sys.argv[1]
^
SyntaxError: invalid syntax
并且,第二行中的print语句不打印任何内容,:(
我在这里错过了什么?
答案 0 :(得分:1)
如果你说
就行module = __import__(sys.argv[1])
print(module.__file__)
(假设模块是作为文件实现的; sys
和__builtins__
不是。)
答案 1 :(得分:1)
你不能在import语句中使用变量,你应该使用内置的__import__
代替:
import sys
print sys.argv
module = __import__(sys.argv[1])
print module.__file__