python之路-15-软件目录结构规范
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之路-15-软件目录结构规范相关的知识,希望对你有一定的参考价值。
15.1层次清晰的目录结构
1.可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等。从而非常快速的了解这个项目。
2.可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下。这个好处是,随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组织良好。
15.2目录组织方式
假设你的项目名为foo, 我比较建议的最方便快捷目录结构这样就足够了:
Foo/
|-- bin/
| |-- foo
|
|-- foo/
| |-- tests/
| | |-- __init__.py
| | |-- test_main.py
| |
| |-- __init__.py
| |-- main.py
|
|-- docs/
| |-- conf.py
| |-- abc.rst
|
|-- setup.py
|-- requirements.txt
|-- README
简要解释一下:
bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。
foo/: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为main.py。
docs/: 存放一些文档。
setup.py: 安装、部署、打包的脚本。setuptools管理
requirements.txt: 存放软件依赖的外部Python包列表。
README: 项目说明文件。
注:开源项目或许需要增加LICENSE.txt,ChangeLog.txt文件等
关于README的内容(每个项目都应该有的一个文件)
它需要说明以下几个事项:
软件定位,软件的基本功能。
运行代码的方法: 安装环境、启动命令等。
简要的使用说明。
代码目录结构说明,更详细点可以说明软件的基本原理。
常见问题说明。
15.3 不同模块之间的调用
- 相对路径和绝对路径
#print(__file__) ###在pycharm上执行的是绝对路径,但是程序是在后台执行的,打印相对路径
#print(os.path.abspath(__file__)) ###动态获得绝对路径
#print(os.path.dirname(os.path.abspath(__file__))) ###找上级父目录
#print(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) ###找上上级父目录
- 模块之间调用
新建目录Atm,在Atm下新建Python Package分别是bin、conf、core,新建目录logs。Bin下新建python file名为atm.py,conf新建python file为setting.py,core下新建python file名main.py
现在通过bin下atm.py文件调用core下main.py文件里的函数。
Atm.py
import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
from conf import setting
from core import main
main.login()
main.py
#!Author:lanhan
def login():
print("Welcome to my atm")
以上是关于python之路-15-软件目录结构规范的主要内容,如果未能解决你的问题,请参考以下文章