Python package和folder

  在Python项目里面的区分,按照如下规定进行:

  1.严格区分包和文件夹。包的定义就是包含__init__.py的文件夹。

    如果没有__init__.py,那么就是普通的文件夹。

  2.导入package。 

    在python 安装目录的site-package文件夹中新建xxx.pth,内容是需要导入的package所在的文件夹路径。

  3.导入模块。

    就是一般的模块导入写法,注意只要包路径,不要文件夹路径。

以上面工程为例:

总共有4个包,分别是:package,package1, package2, folder2.(folder1不是package,因为它没有__init__.py)。

这些包所在的文件夹共有两个,test以及test/folder1。  注意,package2所在的文件夹是test,虽然它是包含在folder2里面,但是folder2是一个包,不是一个文件夹。

因此在site-package中新建一个XXX.pth, 里面添加上test以及test/folder1的绝对路径即可。

模块导入比较简单,只要依次填包名就可以了,但注意只要包名

如果需要导入module2,则import folder2.package2.module2

如果需要导入module1,则import package1.module1(路径中没有folder1,因为folder1是文件夹,不是包)。

当package和py文件同名时,解释器会优先读取package的内容

from后面可以写包名或者是包里的py文件名,import可以引入py文件名,*和函数名

原文地址:https://www.cnblogs.com/edisonxiang/p/4664979.html