Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尽管python说模块存在,为什么我会得到这个消息?_Python_Python 3.x_Ipython - Fatal编程技术网

尽管python说模块存在,为什么我会得到这个消息?

尽管python说模块存在,为什么我会得到这个消息?,python,python-3.x,ipython,Python,Python 3.x,Ipython,我对以下repl交互感到困惑: In [7]: import os In [8]: os.sys Out[8]: <module 'sys' (built-in)> In [9]: os.sys.stderr Out[9]: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'> In [10]: from os.sys import stderr -------------------

我对以下repl交互感到困惑:

In [7]: import os

In [8]: os.sys
Out[8]: <module 'sys' (built-in)>

In [9]: os.sys.stderr
Out[9]: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>

In [10]: from os.sys import stderr
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-10-cd47f2925e40> in <module>()
----> 1 from os.sys import stderr

ImportError: No module named 'os.sys'; 'os' is not a package
[7]中的
:导入操作系统
在[8]中:os.sys
出[8]:
在[9]中:os.sys.stderr
出[9]:
在[10]中:从os.sys导入stderr
---------------------------------------------------------------------------
ImportError回溯(最近一次呼叫最后一次)
在()
---->1从os.sys导入stderr
ImportError:没有名为“os.sys”的模块;'“操作系统”不是一个包
为什么Python3.5.3声明
os.sys
是一个模块,但在尝试导入它时,会出现错误


注意:我知道,要访问错误流,我需要从sys导入stderr
,但无论如何我都感到困惑。

您还没有导入
os.sys
。您只访问了符号。来自。。。import…
语句试图访问解释器中没有数据的部分。(很可能是系统模块)

在重复命令之前,请尝试执行导入os.sys的操作

>>> import sys
>>> sys.modules['os']
>>> <module 'os' from '/.../lib/python3.5/os.py'>
sys.modules['os.sys']
>>> Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'os.sys'

您尚未导入
os.sys
。您只访问了符号。来自。。。import…语句试图访问解释器中没有数据的部分。(很可能是系统模块)

在重复命令之前,请尝试执行导入os.sys的操作

>>> import sys
>>> sys.modules['os']
>>> <module 'os' from '/.../lib/python3.5/os.py'>
sys.modules['os.sys']
>>> Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'os.sys'

os
模块实际上导入了
sys
,因此可以通过
os.sys
访问
sys
模块(就像模块顶层定义的任何名称一样)。这不会使
sys
成为
os
的适当子模块,因此无法从
os.sys
导入


作为旁注,
os
imports
sys
这一事实是一个不应该依赖的实现细节

操作系统模块实际上导入了
sys
,因此可以通过
os.sys
访问
sys模块(就像在模块顶层定义的任何名称一样)。这不会使
sys
成为
os
的适当子模块,因此无法从
os.sys
导入


作为旁注,
os
imports
sys
这一事实是一个不应该依赖的实现细节

re“这不会使sys成为操作系统的子模块,因此无法从操作系统导入”-您可以从操作系统导入sys,请在repl中尝试从操作系统导入sys。您不能将
os.sys
用作一个模块。e、 g.从
os.sys
@khachik导入是的,很抱歉,我的回答在这一点上的措辞非常糟糕-我编辑了它,谢谢建设性的批评。奇怪的是,解释器声称
os.sys
是一个模块。也许模块这个术语的含义与我所期望的不同,因为显然不是所有模块都可以导入。@oarfish这里确实有一些多义词。。。模块是“可以导入的东西-通常但不一定是.py文件”,运行时模块是“通过导入创建的
模块
类型的实例”。re“这不会使sys成为操作系统的子模块,因此您无法从操作系统导入它”-您可以从操作系统导入sys,在您的repl中尝试从操作系统导入系统
。您不能将
os.sys
用作一个模块。e、 g.从
os.sys
@khachik导入是的,很抱歉,我的回答在这一点上的措辞非常糟糕-我编辑了它,谢谢建设性的批评。奇怪的是,解释器声称
os.sys
是一个模块。也许模块这个术语的含义与我所期望的不同,因为显然不是所有模块都可以导入。@oarfish这里确实有一些多义词。。。有一个模块是“可以导入的东西(通常但不一定是.py文件)”,运行时模块是“通过导入创建的
module
类型的实例”。