math.py 和 sys.py 在哪里



我在 Python33/Lib 中找到了所有其他模块,但我找不到这些模块。我敢肯定还有其他人"失踪",但这些是我唯一注意到的。当我导入它们时,它们工作得很好,我只是找不到它们。我检查了sys.path,他们不在那里。它们是内置的还是什么?

mathsys 模块是内置的——为了速度起见,它们是用 C 编写的,并直接合并到 Python 解释器中。

要获取所有内置函数的完整列表,您可以运行:

>>> import sys
>>> sys.builtin_module_names

在我的机器上,这会导致以下列表:

__builtin__
__main__
_ast
_bisect
_codecs
_codecs_cn
_codecs_hk
_codecs_iso2022
_codecs_jp
_codecs_kr
_codecs_tw
_collections
_csv
_functools
_heapq
_hotshot
_io
_json
_locale
_lsprof
_md5
_multibytecodec
_random
_sha
_sha256
_sha512
_sre
_struct
_subprocess
_symtable
_warnings
_weakref
_winreg
array
audioop
binascii
cPickle
cStringIO
cmath
datetime
errno
exceptions
future_builtins
gc
imageop
imp
itertools
marshal
math
mmap
msvcrt
nt
operator
parser
signal
strop
sys
thread
time
xxsubtype
zipimport
zlib

这些模块不是用Python编写的,而是用C编写的。你可以在名为lib-dynload的lib-folder的子文件夹中找到它们(至少在linux上)。
然后,数学模块位于文件math.cpython-33m.so中(在Windows上可能带有.dll而不是.so)。cpython-33m部分是我的python版本(3.3)。

我不了解数学,但 sys 是解释器的运行时服务,因此始终可用。看看这个。您还可以从此页面找到内置列表。

另请查看此主题,您可以尝试以下链接。

像math,time,gc这样的模块不是用python编写的,正如上面的答案中正确所说,它们在python解释器中的某个地方(编写或模块)。如果您导入 sys 然后使用 sys.builtin_module_names(它提供了内置于此解释器中的模块名称元组)。数学就是这个列表中的一个这样的模块。因此,我们可以看到数学来自这里,而不是作为python代码单独编写在库或任何其他文件夹中。

最新更新