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 不同模块之间的调用

  1. 相对路径和绝对路径

#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__)))) ###找上上级父目录

 技术分享图片

 

  1. 模块之间调用

新建目录Atm,Atm下新建Python Package分别是binconfcore,新建目录logsBin下新建python file名为atm.py,conf新建python filesetting.py,core下新建python filemain.py

现在通过binatm.py文件调用coremain.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-软件目录结构规范的主要内容,如果未能解决你的问题,请参考以下文章

python软件目录结构规范

Python学习-软件目录结构规范

Python 之 软件目录结构规范

python 软件目录结构规范

python 软件目录结构规范 与 模块导入

Python基础之软件目录结构规范