0

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

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

而且,第二行中的打印语句不会打印出任何内容,:(

我在这里错过了什么?

4

2 回答 2

1

如果你说它有效

module = __import__(sys.argv[1])
print(module.__file__)

(假设模块是作为文件实现的;sys__builtins__不是。)

于 2012-11-28T16:24:32.060 回答
1

您不能在 import 语句中使用变量,而应使用内置变量__import__

import sys
print sys.argv
module = __import__(sys.argv[1])
print module.__file__ 
于 2012-11-28T16:26:06.673 回答