比如项目名为foo:
Foo/
|-- bin/
| |-- foo
|
|-- src/
| |-- resources/
| |-- test/
| | |-- init.py
| | |-- test_main.py
| |
| |-- init.py
| |-- main.py
|
|-- docs/
| |-- conf.py
| |-- abc.rst
|
|-- setup.py
|-- requirements.txt
|-- README
-
bin/: 存放项目的一些可执行文件。
-
src/: 存放项目的所有源代码。
(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。
(2) 其子目录tests/存放单元测试代码;
(3) 其子目录resources/存放资源文件;
(4) 程序的入口命名为main.py。 -
docs/: 存放一些文档。
-
setup.py: 安装、部署、打包的脚本。
-
requirements.txt: 存放软件依赖的外部Python包列表。
python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。
官方文档:
Pip’s documentation states
pip description
freeze Output installed packages in requirements format.
list List installed packages.
在虚拟环境中使用pip生成(否则会生成大量本地数据包,安装或升级包后,最好更新这个文件):
pip freeze >requirements.txt # 输出本地包环境至文件
当需要创建这个虚拟环境的完全副本,可以创建一个新的虚拟环境,并在其上运行以下命令:
pip install -r requirements.txt # 根据文件进行包安装
需求文件requirements.txt的内容示例如下:
alembic==0.8.6
bleach==1.4.3
click==6.6
dominate==2.2.1
- README: 项目说明文件,简要描述该项目的信息,让人快速了解这个项目。
需要说明以下几个事项:
(1)软件定位,软件的基本功能。
(2)运行代码的方法: 安装环境、启动命令等。
(3)简要的使用说明。
(4)代码目录结构说明,更详细点可以说明软件的基本原理。
(5)常见问题说明。
在软件开发初期,由于开发过程中以上内容可能不明确或者发生变化,并不是一定要在一开始就将所有信息都补全。但是在项目完结的时候,是需要撰写这样的一个文档的。
有一些方案给出了更多内容。比如LICENSE.txt,ChangeLog.txt文件等,这些主要是项目开源的时候需要用到。
网友评论