Python 什么';这就是我们之间的区别。进口和进口?
以下两者之间的区别是什么:Python 什么';这就是我们之间的区别。进口和进口?,python,import,Python,Import,以下两者之间的区别是什么: from . import spam 以及: ? 另外,第一次导入时不出现错误的要求是什么?因此,在第一次导入中,您要做的是:从python脚本的当前工作目录,尝试导入模块。在过去,“.”表示当前目录(如果现在使用的是终端:D,它仍然表示当前目录)。这是毫无意义的,因为如果python在站点包中找不到可导入的模块,它已经在扫描您当前的目录(或文件夹)。我将坚持使用第二个(因为它的意思是相同的。)因此,在第一个中,您尝试做的是:从python脚本的当前工作目录,您尝试
from . import spam
以及:
?
另外,第一次导入时不出现错误的要求是什么?因此,在第一次导入中,您要做的是:从python脚本的当前工作目录,尝试导入模块。在过去,“.”表示当前目录(如果现在使用的是终端:D,它仍然表示当前目录)。这是毫无意义的,因为如果python在站点包中找不到可导入的模块,它已经在扫描您当前的目录(或文件夹)。我将坚持使用第二个(因为它的意思是相同的。)因此,在第一个中,您尝试做的是:从python脚本的当前工作目录,您尝试导入一个模块。在过去,“.”表示当前目录(如果现在使用的是终端:D,它仍然表示当前目录)。这是毫无意义的,因为如果python在站点包中找不到可导入的模块,它已经在扫描您当前的目录(或文件夹)。我会坚持第二个(因为它的意思是一样的。)
from。导入垃圾邮件
在当前(同级)包中搜索模块垃圾邮件
。例如,如果您有这样的软件包:
mypackage
__init__.py
foo.py
spam.py
,在foo.py
内部,您可以使用从导入垃圾邮件。导入垃圾邮件
导入垃圾邮件
在定义为列表的模块搜索路径中搜索模块垃圾邮件
。例如,spam
可以是内置模块,也可以是使用pip
安装的模块。导入垃圾邮件
在当前(同级)包中搜索模块垃圾邮件
。例如,如果您有这样的软件包:
mypackage
__init__.py
foo.py
spam.py
,在foo.py
内部,您可以使用从导入垃圾邮件。导入垃圾邮件
导入垃圾邮件
在定义为列表的模块搜索路径中搜索模块垃圾邮件
。例如,spam
可能是一个内置模块,或者是您使用pip
安装的模块。该系统实际上是基于目录的。看看@dvnguyen的问题,这个功能在开发包时实际上很有用。它意味着同样的事情——不完全是,解析顺序不同,这可能很重要。这个系统实际上是基于目录的。看看@dvnguyen的问题,这个功能实际上在开发包时很有用。它的意思是一样的——不一定,解析顺序不同,这可能很重要。什么是mypackage
?它与普通文件夹有什么不同?mypackage
只是包的名称。这里的区别是文件\uuuu init\uuuu.py
。按照惯例,每个文件夹都包含该文件,即使只是一个空文件,也被视为Python包foo.py
,spam.py
是此软件包中的模块。您确定这些都是要求吗?当我创建一个名为mypackage
的文件夹时,其中包含空的\uuuu init\uuuuuuuuuupy
和spam.py
以及来自的。导入垃圾邮件
作为foo.py
的唯一一行,它会引发ImportError:无法导入名称“spam”
。您是否直接运行python foo.py
?如果这是真的,那么这是一个预期的行为,因为您正在以独立模块的形式运行它。它不知道这个包裹。但是如果您有一个main.py
与mypackage
处于同一级别,您可以从mypackage import foo
导入。是的,它必须位于“包上下文”中,因此您需要从更高级别的目录导入它,或者将整个mypackage
作为第三方包分发。什么是mypackage
?它与普通文件夹有什么不同?mypackage
只是包的名称。这里的区别是文件\uuuu init\uuuu.py
。按照惯例,每个文件夹都包含该文件,即使只是一个空文件,也被视为Python包foo.py
,spam.py
是此软件包中的模块。您确定这些都是要求吗?当我创建一个名为mypackage
的文件夹时,其中包含空的\uuuu init\uuuuuuuuuupy
和spam.py
以及来自的。导入垃圾邮件
作为foo.py
的唯一一行,它会引发ImportError:无法导入名称“spam”
。您是否直接运行python foo.py
?如果这是真的,那么这是一个预期的行为,因为您正在以独立模块的形式运行它。它不知道这个包裹。但是,如果您的main.py
与mypackage
处于同一级别,则可以从mypackage import foo
导入。是的,它必须位于“包上下文”中,因此您需要从更高级别的目录导入它,或者将整个mypackage
作为第三方包分发。