math.py 和 sys.py 在哪里?

新手上路,请多包涵

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

原文由 temporary_user_name 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 723
2 个回答

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

原文由 Michael0x2a 发布,翻译遵循 CC BY-SA 3.0 许可协议

这些模块不是用 Python 编写的,而是用 C 编写的。您可以在名为 lib-dynload 的 lib 文件夹的子文件夹中找到它们(至少在 linux 上)。

数学模块然后在文件中 math.cpython-33m.so (在 Windows 上可能使用 .dll 而不是 .so )。 cpython-33m 部分是我的 python 版本 (3.3)。

原文由 TobiMarg 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题