簡體   English   中英

sys模塊是否構建在每個python解釋器中是什么意思?

[英]What does it mean that the sys module is built into every python interpreter?

我正在閱讀官方的Python教程,它說

一個特定的模塊值得注意:sys,它內置於每個Python解釋器中。

但是,如果我啟動python解釋器並輸入例如sys.path ,我會得到一個NameError: name sys is not defined

因此,如果我想訪問它,我需要導入sys

那么它是什么意思“它內置於每個python解釋器中”?

它只是意味着

import sys

無論您使用的是哪個版本的Python,都會成功。 它隨每個Python安裝一起提供。 相比之下,例如,

import mpmath

除非您自己安裝了mpmath軟件包,否則它將失敗,或者它與您正在使用的特定Python安裝捆綁在一起。

那么它是什么意思“它內置於每個python解釋器中”?

sys模塊用C語言編寫,並編譯成Python解釋器本身。 根據解釋器的版本,可能會有更多此類模塊 - sys.builtin_module_names列出所有模塊。
正如您所注意到的,內置模塊仍然需要像任何其他擴展一樣import

>>> import sys
>>> sys.builtin_module_names
('_ast', '_codecs', '_collections', '_functools', '_imp', '_io', '_locale', '_operator', '_signal', '_sre', '_stat', '_string', '_symtable', '_thread', '_tracemalloc', '_warnings', '_weakref', 'atexit', 'builtins', 'errno', 'faulthandler', 'gc', 'itertools', 'marshal', 'posix', 'pwd', 'sys', 'time', 'xxsubtype', 'zipimport')

sys模塊用C語言編寫,並編譯成> Python解釋器本身。 根據解釋器的>版本,可能會有更多>此類模塊 - sys.builtin_module_names>將它們全部列出。

值得強調的是,“sys”模塊內置於Python解釋器,CPython或JPython等。

您將找不到像正常模塊一樣的“sys.py”。

幫助(sys)將顯示以下信息

Help on built-in module sys:
NAME
    sys
FILE
    *(built-in)*

相比之下:help(os)

Help on module os:
NAME
    os - OS routines for Mac, NT, or Posix depending on what system we're on.
FILE
    */usr/lib64/python2.7/os.py*

與C相比,“sys”可以在某種程度上被視為LIBC(“libc.so.7”)的一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM