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

时间:2012-07-26 04:42:43

标签: python

我已经阅读了python的文档以及关于package, library, module and script含义的许多来源,我得到了一些,我知道这是一个基本问题,但它很混乱,非常重要的是要知道它们之间的区别。 我知道这是一个基本问题,但请不要投票,因为这肯定会对其他人有用。

包:其中包含__init__.py个文件

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

任何人都可以轻松解释而不会混淆。

3 个答案:

答案 0 :(得分:0)

这对于首发来说如何:

module通常是一段Python代码(即脚本),它不会被顶级PVM解释/执行,即使用__name ='__main__',但是从调用脚本导入。因此,模块中的定义存在于其自己的命名空间中。

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

答案 1 :(得分:0)

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

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

模块与库是一样的,因为它主要用于导入,但有时人们使用单词模块来引用.py文件,而不必暗示文件是可执行的(因此是脚本)也不是导入 - (因此是一个图书馆)。如果您不确定文件是要执行还是导入,则使用它是一个更安全的词;或者如果你想减少对文件性质的重视;或者如果要引用包含可执行脚本和库的文件集合以进行导入。在这个意义上,这是更中性的词。

包具体是指a folder containing an __init__.py和至少一个或多个其他.py文件(从技术上讲,只包含 init .py的文件夹也是一个包,但它们应该只是转换成单个.py模块)。因此,包是比模块/库更高的层次结构。

答案 2 :(得分:0)

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

您自己写的所有内容都可以称为脚本

您在脚本中导入的所有内容都可以称为模块。还记得你可以把你的脚本作为一个可导入的模块,通过把它放在一个python路径的目录中并在其中包含一个__init__.py文件,考虑到你的脚本文件不包含__name='__main__'正如克劳斯所说。现在这个目录可以被称为,如Lie所述。

另一种表示形式 - 包或库是pypi或其他git存储库中可用的源文件集,可以针对&安装到本地python版本,可以作为模块导入脚本。

  

总的来说,你可以编写一个脚本,创建一个包(库)   同样,在pypi中托管它,使用pip,import下载并安装到你的python   作为另一个脚本的模块。