【发布时间】:2014-05-21 00:06:10
【问题描述】:
假设我想探索 Python 中的 import 语句。如何从 Python 命令行中找到定义 import 的文件?注意我在 Windows 7 中使用 Python 2.7.6 (iPython)。
对于大多数对象,只需输入对象名称即可。例如:
import os
os
产生以下结果:
<module 'os' from 'C:\Anaconda\lib\os.pyc'>
但是你不能对import这样的基本命令做同样的事情。
我已经尝试搜索我的 Python 文件夹,但不出所料,没有像 C:\Anaconda\lib\import.py 这样简单的东西。有没有一种简单的方法可以找出这些语句的定义位置(我意识到很多时候它会在 c 代码中,但这就是我所追求的)?
更新(2014 年 5 月 27 日)
似乎人们认为使用内置命令无法以任何简单的方式完成。但是,如果你的生活依赖它,你可以在 Python 中编写一些不优雅的 grep 类型函数,不是吗?
【问题讨论】:
-
你不能。您使用的技巧适用于 modules,但 import 不是一个模块,而是一个语句。
-
@dano 你不能,句号,或者你不能像我试过的那样?
-
我相信
import是用 C 实现的,所以你需要找到它在实际 Python 源代码中的位置。但是,从 Python 3.1 开始,有importlib模块,它提供了import的纯 Python 实现:docs.python.org/3/library/importlib.html -
所以没有办法从 Python 命令行中找出它定义在哪个 C 文件中?不知道为什么这被否决了......这是大多数 C/C++ IDE 让你很容易做到的事情。
标签: python file-location