您的位置:首页 > 编程语言 > Python开发

python之路-15-软件目录结构规范

2017-11-26 13:32 423 查看
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")

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: