1. 程式人生 > >python之路-15-軟件目錄結構規範

python之路-15-軟件目錄結構規範

ide ase 路徑和 rst 常見 int ack 基本功 sys

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-軟件目錄結構規範