如何合理地规划 Python 的项目目录
发布网友
发布时间:2022-04-23 21:22
我来回答
共1个回答
热心网友
时间:2022-04-18 05:11
我目前使用的 web 框架是 tornado ,用它来搭建 server ,我目前的项目文档是这样的(有些抄袭 flask 的框架):
└── myweb
├── fab.py
├── init.sh
├── log
└── myweb
├── README.md
├── apps
│ ├── config.py
│ ├── datadict.py
│ ├── handlers
│ ├── main.py
│ └── orm
├── samples
├── sql
├── tests
└── utils
myweb 为项目名称,其中内部的 myweb 目录为一个完整的项目包,最外部的 myweb 目录,除了包括此项目,还有 init.sh 用来做项目初始化的某些工作, log 用来保存日志, fab.py 是 fabric 命令的文件。
目前能满足基本的需求,但是我想把它弄的更“专业化”。而且我一直好奇我所遇到的问题有没有更好的解决办法。
1.python 的 import ,“外引内”容易,但是“内引外”会很复杂。我没有用相对引用(“..”的方式向上引用),首先那种写法太挫了,再说 python 官方也不建议用那种写法。我目前的做法是吧 myweb 作为一个项目的根目录,直接添加到 python 的 PATH 目录中,如果是 supervisor ,那就配置给 directory 就行了, myweb 作为根的好处就是其它部分去 import 模块会非常容易(直接用绝对引用, import 就行了)。
2.我们的项目经常要发布到专门的服务器上进行测试,我的做法是直接使用 fabric 发布到测试服务器部署,但是并非完全的自动化部署,自动化运运行单元测试,是否有更好的解决方案?
3.我项目的内部和外部都有一个 myweb 文件夹,外部的算整个代码库( git 管理),而内部的算一个完整的 python 包,我目前还未想过使用 egg 来打包自己的项目,但是还是想了解下,这样的布局方式是否有合理?