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
作为第三方包分发。