python中的库、包、模块和脚本是什么意思

python中的库、包、模块和脚本是什么意思,python,Python,我已经阅读了python文档和许多关于包、库、模块和脚本的含义的资料,我得到了一些,我知道这是一个基本的问题,但了解它们之间的区别是很容易混淆的,也是非常重要的。 我知道这是一个基本问题,但请不要投反对票,因为这肯定会对其他人有用 包:其中包含\uuuu init\uuuuuuuuuuuupy文件 模块:由Python代码组成的Python文件 任何人都可以很容易地解释,而不会混淆它们。对于初学者来说,这一点如何: 通常是一段Python代码(即脚本),它不是由PVM在顶层解释/执行的,即使用\

我已经阅读了python文档和许多关于
包、库、模块和脚本的含义的资料,我得到了一些,我知道这是一个基本的问题,但了解它们之间的区别是很容易混淆的,也是非常重要的。
我知道这是一个基本问题,但请不要投反对票,因为这肯定会对其他人有用

包:其中包含
\uuuu init\uuuuuuuuuuuupy
文件

模块:由Python代码组成的Python文件


任何人都可以很容易地解释,而不会混淆它们。

对于初学者来说,这一点如何:

通常是一段Python代码(即脚本),它不是由PVM在顶层解释/执行的,即使用
\uuuu name=''\uuuuu main\uuuu'
,而是从调用脚本导入的。因此,模块中的定义存在于其自己的命名空间中


换句话说,这意味着您的任何脚本都可以从代码的其他部分导入,从而充当模块。

它们基本上都是指相同的东西,一个文件或一组包含python代码的文件,python使它们之间的区别变得透明,因此不那么重要。但它们的含义确实略有不同

“脚本”是主要用于执行的.py文件,而“库”是主要用于由另一个脚本导入的.py文件。但是,单个.py文件可以并且通常作为脚本和库编写。timeit模块就是这种脚本/库双重性的一个例子,如果您从命令行执行timeit模块,它将接受一个命令行参数,其中包含您想要微基准测试的python代码;但您也可以将timeit模块导入到微基准函数或要eval/exec-ed的字符串中

模块与库是一样的,因为它主要用于导入,但是有时人们使用单词module来引用.py文件,而不一定意味着该文件是可执行的(因此是脚本)还是可导入的(因此是库)。如果您不确定某个文件是要执行还是要导入,则使用该词更安全;或者,如果你想减少对文件性质的强调;或者,如果要引用包含可执行脚本和库的文件集合以进行导入。从这个意义上说,这是一个更中性的词


Package特别指的是
一个文件夹,其中包含一个uuu init_uuu.py
和至少一个或多个其他.py文件(从技术上讲,仅包含init.py的文件夹也是一个包,但它们应该转换为一个.py模块)。因此,包比模块/库具有更高的层次结构。

我想您需要一个非常基本的解释

你自己写的东西可以称为脚本

您在脚本中导入的所有内容都可以称为模块。还请记住,您可以将脚本作为一个可导入的模块,方法是将其放入python路径中的目录中,并在其中包含一个
\uuuu init\uuuuuuuuy.py
文件,因为您的脚本文件不包含Klaus提到的
\uuu name='\uuuu main\uuuuuuuuuuuuu'
。现在,这个目录可以称为Lie提到的

另一种表示法-包或库是pypi或其他git存储库中可用的源文件集,可以根据本地python版本构建并安装,并且可以作为模块导入脚本中

总的来说,您可以编写脚本,创建 同样,将其托管在pypi中,使用pip下载并安装到python中,导入 作为另一个脚本中的模块


TL;博士,区别并不重要