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

來源:互聯網
上載者:User

標籤:src   函數   可讀性   不同   目錄   使用   os.path   abc   打包   

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分別是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-軟體目錄結構規範

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.