问题描述
当我在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']
这就是我得到的。 我将根据JFSebastian所说的内容猜测时间模块位于上述标记为(C:\\ Python27)的位置(在可执行文件中),尽管我的第一个猜测是在lib文件夹中的文件中。
我在寻找collections
,它是一个独立的文件,因此即使标准库也是如此,它仍然存在于磁盘上的文件中,我知道它的确切位置。
我想也知道这一点的time
(在即时通讯中的.exe猜测它)。
如果我要将自己的模块保存在上述标记的位置(如果不在此位置),是否将其保存为examplemodule [no file extension],examplemodule.py ?,如果保存为扩展名,则必须使用扩展即导入examplemodule.py? 或不。
这是一个问题(扩展位),如果我只是可以看到它在磁盘上,但是可以编译为python可执行文件或Libs目录中的话,我可能会回答。 再次感谢
1楼
“时间”模块是用C语言编写的,在Python 2中没有.__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在线上的模块: :
这个旧问题的答案已经过时:
让我解决这个问题的动机,您担心模块的放置位置,以便可以导入它们。
它们的位置必须在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']