Python 2.7:“导入时间”Python从哪里导入这个时间模块?

2024-04-27 05:16:00 发布

您现在位置:Python中文网/ 问答频道 /正文

当我在Python中导入某些内容时,在本例中import time,从哪里导入time?导入前模块位于何处?我试着在解释器中的__builtin__和其他文件夹上使用dir(),但它不在那里。

我在c:\ python文件夹中搜索了一个名为time的文件,但是没有找到任何结果,但是time.sleep(1)工作得很好,所以它被导入了。它是从网络上自动下载的吗?

我最终想导入一些其他的文本着色模块,但我需要知道这个模块是从哪里来的。谢谢。


关于Aarons的“提问动机”编辑:

[u'', 'C:\\Program Files (x86)\\PyScripter\\Lib\\rpyc.zip', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', <--- This location 'C:\\Python27\\lib\\site-packages']

这就是我得到的。我将根据J.F.Sebastian所说的猜测,时间模块位于上面标记的位置(C:\ Python27)(在可执行文件中),尽管我的第一个猜测是在lib文件夹中的一个文件中。

我查找了collections这是一个独立的文件,所以即使这也是标准库,它也存在于磁盘上的一个文件中,我知道它确切的位置。我也想知道这一点,time(我猜它在.exe中)。

如果我要将自己的模块保存在上面标记的位置(如果不是在哪里),我会将其保存为examplemodule[没有文件扩展名],examplemodule.py吗?,如果使用扩展名保存,则必须使用扩展名导入它,即import examplemodule.py?或者不。

这是一个问题(扩展位),如果我能简单地看到它在磁盘上的文件,但被编译成python可执行文件或Libs目录,我可能会回答这个问题。再次感谢


Tags: 模块文件py标记import文件夹可执行文件内容
1条回答
网友
1楼 · 发布于 2024-04-27 05:16:00

“time”模块是用C编写的,而在Python2中没有.__file__,与其他模块(如collections)一样。在Python 3(我的系统上是3.4)中:

time.__file__

回报

'/home/user/cpython/build/lib.linux-x86_64-3.4-pydebug/time.cpython-34dm.so'

我的主目录中有cpython,可以通过查看/Modules/timemodule.c找到源代码

这是Mercurial online中的模块:http://hg.python.org/cpython/file/3ae2cd85a908/Modules/timemodule.c


这个老问题的答案已经过时了:How do I find the location of Python module sources?


让我来谈谈这个问题的动机,您关心的是模块的放置位置,以便您可以导入它们。它们的位置必须在sys.path中,第一项是'',但在语义上意味着脚本目录。

以下是我自己构建的Python 3.4的sys.path输出:

>>> import sys, pprint
>>> pprint.pprint(sys.path)
['',
 '/usr/local/lib/python34.zip',
 '/home/user/cpython/Lib',
 '/home/user/cpython/Lib/plat-linux',
 '/home/user/cpython/build/lib.linux-x86_64-3.4-pydebug',
 '/home/user/.local/lib/python3.4/site-packages']

相关问题 更多 >