2012-07-26 94 views
-2

我已经阅读了python的文档和许多关于package, library, module and script的含义的资料,我得到了一些,我知道这是一个基本的问题,但它的混乱和非常重要的知道它们之间的差异。 我知道这是基本问题,但请不要投票,因为肯定这对其他人有用。Python中的库,包,模块和脚本是什么意思

套餐:其中有__init__.py文件

模块:Python的文件,该文件包括Python代码

任何人都可以很容易解释他们之间没有混淆。

回答

0

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

什么是你自己写的可以称为脚本

什么是你在脚本中导入的可以称为模块。另外请记住,您可以将您的脚本设置为可导入的,通过将它放到一个python路径下的目录中,并在其中包含一个__init__.py文件,考虑到你的脚本文件不包含Klaus提到的__name='__main__'。如Lie所述,此目录可称为

另一个代表 - 一个包或库是集PyPI中或其他Git仓库可以建立针对安装到本地Python版本&,可以导入为脚本模块可用的源文件。

整体上,你可以编写一个脚本,创建的 同一个包(库),它托管在PyPI中,下载并使用PIP它安装到你的Python,进口 作为一个模块中,以另一个脚本。

0

这样如何用于起动:

module通常是一块Python代码(即一个脚本),这是不在顶层解释/执行由PVM,即具有__name ='__main__',但从调用脚本导入。来自模块的定义因此存在于它自己的命名空间中。

这意味着与换句话说,任何你脚本可以从代码的其他部分被导入并因此充当模块

0

他们基本上都意味着同样的事情,一个或一组文件,它包含Python代码和Python使透明的,因此不那么重要了它们之间的区别。但他们确实有一个稍微不同的含义。

A“脚本”是最基本的功能是要执行的,而“库”是最基本的功能是由另一个脚本导入一个.py文件一个.py文件。然而,一个单独的.py文件可以并经常被编写为脚本和库。 timeit模块就是这种脚本/库对偶的一个例子,如果你从命令行执行timeit模块,它会带有一个命令行参数,它包含你想要进行微基准测试的python代码;但您也可以将timeit模块导入微型基准测试函数或将字符串导入eval/exec-ed。

模块与库相同,因为它主要是用来导入的,但有时候人们使用word模块来引用.py文件,而不一定意味着文件是可执行的(因此是脚本),也不是可导入的(因此是一个库)。如果您不确定某个文件是要执行还是导入,那么使用它会更安全;或者如果你不太重视文件的性质,或者如果您想要引用包含用于导入的可执行脚本和库的文件集合。在这个意义上,这是更中性的词汇。

包特指a folder containing an __init__.py和至少一个或多个其它.py文件(在技术上,只包含INIT的.py是一个包为好,但它们应该只被转化成一个单一的.py模块的文件夹)。因此,软件包比模块/库更高。

+0

TL; DR的区别并不重要 – 2012-07-26 05:28:26