https://blog.csdn.net/luo123n/article/details/49849649
http://blog.habnab.it/blog/2013/07/21/python-packages-and-you/
demo project
本文以一个demo project为例,来介绍python的包管理机制。
这个demo project我放到github上了:地址点我
其中,项目根目录有三个文件夹:
- data:存放项目数据
- doc:存放项目文档
- package:一个demo python package
其中,package中的文件结构如下图:
python package
基础知识
当你import的时候,python只会在sys.path这个变量(一个list,你可以print出来看)里面的路径中找可能匹配的package和module。
而一个package跟一个普通文件夹的区别在于,package的文件夹中多了一个__init__.py文件。换句话说,如果你在某个文件夹中添加了一个__init__.py文件,则python就认为这个文件夹是一个package。
__init__.py文件可以是空的(也推荐者这么做),它只是告诉python当前文件夹是一个package。当然,也可以在里面添加一些代码,这些代码会在import这个包的时候运行。
所以,请确保你要import的文件所在的文件夹有__init__.py文件(除非它在sys.path中某个文件夹下)。