python中的項(xiàng)目目錄結(jié)構(gòu)
一、常見(jiàn)的結(jié)構(gòu)
關(guān)于如何組織一個(gè)較好的Python工程目錄結(jié)構(gòu),已經(jīng)有一些得到了共識(shí)的目錄結(jié)構(gòu)。
在Stackoverflow的這個(gè)問(wèn)題上,能看到大家對(duì)Python目錄結(jié)構(gòu)的討論。
這里面說(shuō)的已經(jīng)很好了,我也不打算重新造輪子列舉各種不同的方式,這里面我說(shuō)一下我的理解和體會(huì)。
假設(shè)你的項(xiàng)目名為foo, 我比較建議的最方便快捷目錄結(jié)構(gòu)這樣就足夠了:
Foo/ |-- bin/ | |-- foo | |-- foo/ | |-- tests/ | | |-- __init__.py | | |-- test_main.py | | | |-- __init__.py | |-- main.py | |-- docs/ | |-- conf.py | |-- abc.rst | |-- setup.py |-- requirements.txt |-- README
簡(jiǎn)要解釋一下
bin/
: 存放項(xiàng)目的一些可執(zhí)行文件,當(dāng)然你可以起名script/
之類的也行。foo/
: 存放項(xiàng)目的所有源代碼。
(1) 源代碼中的所有模塊、包都應(yīng)該放在此目錄。不要置于頂層目錄。
(2) 其子目錄tests/
存放單元測(cè)試代碼;
(3) 程序的入口最好命名為main.py
。
docs/
: 存放一些文檔。setup.py
: 安裝、部署、打包的腳本。requirements.txt
: 存放軟件依賴的外部Python包列表。README
: 項(xiàng)目說(shuō)明文件。
除此之外,有一些方案給出了更加多的內(nèi)容。
比如LICENSE.txt
,ChangeLog.txt
文件等,我沒(méi)有列在這里,因?yàn)檫@些東西主要是項(xiàng)目開源的時(shí)候需要用到。
二、如何解決多次目錄下數(shù)據(jù)的導(dǎo)入?
1.比如main.py
導(dǎo)入docs文件中的conf.py中的函數(shù)
from docs improt conf #這樣的導(dǎo)入是不成功的
因?yàn)閒rom導(dǎo)入的是該目錄即foo文件下的文件夾,docs與foo文件夾是一級(jí)的目錄導(dǎo)入不成功
2.解決方案
import os,sys path = os.path.join(os.path.dirname(os.path.abspath(__file__))) #返回腳本的絕對(duì)路徑 sys.path.append(path) #臨時(shí)添加搜索路徑,這種方法導(dǎo)入的路徑會(huì)在python程序退出后失效。 #path1=os.path.abspath(__file__) #print(path1)#當(dāng)前文件的絕對(duì)路徑 #path2=os.path.dirname(os.path.abspath(__file__)) #print(path2)#當(dāng)前文件的上一層目錄的絕對(duì)路徑 #path3=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #print(path3)#當(dāng)前文件的上上層目錄的絕對(duì)路徑 #os.path.join()函數(shù)用于路徑拼接文件路徑
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)可視化CSV文件中的數(shù)據(jù)
CSV文件包含許多記錄,數(shù)據(jù)分布在各行和各列中,在這篇文章中,小編主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)可視化CSV文件中的數(shù)據(jù),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11淺談Python 字符串格式化輸出(format/printf)
下面小編就為大家?guī)?lái)一篇淺談Python 字符串格式化輸出(format/printf)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07通過(guò)conda把已有虛擬環(huán)境的python版本進(jìn)行降級(jí)操作指南
當(dāng)使用conda創(chuàng)建虛擬環(huán)境時(shí),有時(shí)候可能會(huì)遇到python版本不對(duì)的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)conda把已有虛擬環(huán)境的python版本進(jìn)行降級(jí)操作的相關(guān)資料,需要的朋友可以參考下2024-05-05