它们的意思基本上是一样的,一个或一组包含python代码的文件,python使它们之间的区别变得透明,因此不那么重要。但它们的含义略有不同。在
“脚本”是主要用于执行的.py文件,而“库”是主要由另一个脚本导入的.py文件。但是,一个.py文件可以而且通常同时作为脚本和库编写。timeit模块就是这种脚本/库二元性的一个例子,如果您从命令行执行timeit模块,它将接受一个包含您想要微基准测试的python代码的命令行参数;但是您也可以将timeit模块导入micro benchmark函数或一个要eval/exec-ed的字符串
Modules和library是一样的,因为它主要是要导入的,但是有时人们使用module这个词来指代一个.py文件,而不一定要暗示该文件是可执行的(因此是脚本)还是可导入的(因此是库)。如果您不确定某个文件是要执行还是导入的,或者您希望不太强调该文件的性质,或者您希望引用包含可执行脚本和库的文件集合以进行导入,则使用该词更安全。从这个意义上说,这是一个比较中性的词。在
Package专门引用a folder containing an __init__.py和至少一个或多个其他.py文件(从技术上讲,只包含init.py的文件夹也是一个包,但它们应该被转换成一个.py模块)。因此,包比模块/库具有更高的层次结构。在