python搜索模块路径脚本,参数不起作用

时间:2012-11-28 16:22:36

标签: python

要查找模块的路径,我想使用以下脚本:

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语句不打印任何内容,:(

我在这里错过了什么?

2 个答案:

答案 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__