如何从包中找到可导入的模块?

时间:2009-03-18 11:30:36

标签: python import

有没有办法知道哪些模块可以从包中导入?

4 个答案:

答案 0 :(得分:3)

许多软件包将包含一个名为__all__的列表,其中列出了成员模块。当python执行from x import *时使用。您可以阅读有关here的更多信息。

如果套餐没有定义__all__,您必须做一些类似我之前提出的问题的回答here

答案 1 :(得分:-1)

你有来源。

查看包目录中的文件。这些模块可供您导入。

答案 2 :(得分:-1)

DIR([对象]);

不带参数,dir()返回当前本地范围内的名称列表。使用参数,尝试返回该对象的有效属性列表。

因此,对于模块,例如'sys':

>>> import sys
>>> dir(sys)
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__', '__stdin__', '__stdout__', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getrecursionlimit', 'getrefcount', 'hexversion', 'maxint', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'pydebug', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions']

这就是它的全部内容。

答案 3 :(得分:-2)

import fred

print dir(fred)