在真正項(xiàng)目中,一般使用PyCharm或VSCode開(kāi)發(fā)。那有的小伙伴就問(wèn)了,項(xiàng)目文件目錄有沒(méi)有一個(gè)標(biāo)準(zhǔn)的結(jié)構(gòu)?
應(yīng)該沒(méi)有唯一的統(tǒng)一標(biāo)準(zhǔn),但Python社區(qū)大佬Kenneth Reitz在2013年提出一個(gè)Python項(xiàng)目目錄結(jié)構(gòu),推薦你日后項(xiàng)目中參考。
Python項(xiàng)目推薦結(jié)構(gòu)
Kenneth推薦目錄結(jié)構(gòu),如下所示:
samplemod-master
├── LICENSE
├── MANIFEST.in
├── Makefile
├── README.rst
├── docs
│ ├── Makefile
│ ├── conf.py
│ ├── index.rst
│ └── make.bat
├── requirements.txt
├── sample
│ ├── __init__.py
│ ├── core.py
│ └── helpers.py
├── setup.py
└── tests
├── __init__.py
├── context.py
├── test_advanced.py
└── test_basic.py
一共3個(gè)文件夾,17個(gè)文件。
先來(lái)看看第一個(gè)文件夾docs,它是項(xiàng)目相關(guān)文檔,包括依賴包安裝的Makefile和make.bat,項(xiàng)目配置conf.py,項(xiàng)目介紹文檔index.rst,是比README.rst更細(xì)化的一個(gè)文檔,README.rst更像一個(gè)項(xiàng)目總覽。
第二個(gè)文件夾sample,在Python中一般叫做包(package),它是項(xiàng)目核心代碼,一般會(huì)有多個(gè)這種包,__init__.py是Python包包括的文件。core.py和helpers.py是sample包里兩個(gè)核心模塊。
第三個(gè)包tests,是對(duì)應(yīng)于sample包的單元測(cè)試包,里面的模塊名稱一般以test開(kāi)頭,測(cè)試sample里的每個(gè)模塊。
setup.py是做什么的?
有了上面三個(gè)最主要的包外,文件最重要的有setup.py,這個(gè)文件是做什么的?
簡(jiǎn)單來(lái)說(shuō),setup.py是和打包相關(guān)的配置模塊,一般結(jié)合setuptools。
有了setup.py,我們就可以安裝包到本地全局環(huán)境,或者上傳到PyPi,這樣全世界開(kāi)發(fā)者都有機(jī)會(huì)搜索到你的包,并使用pip安裝上你的包。
里面代碼相對(duì)比較標(biāo)準(zhǔn)和固定,比如在這個(gè)項(xiàng)目里代碼如下:
from setuptools import setup, find_packages
with open('README.rst') as f:
readme = f.read()
with open('LICENSE') as f:
license = f.read()
setup(
name='sample',
version='0.1.0',
description='Sample package for Python-Guide.org',
long_description=readme,
author='Kenneth Reitz',
author_email='me@kennethreitz.com',
url='https://github.com/kennethreitz/samplemod',
license=license,
packages=find_packages(exclude=('tests', 'docs'))
)
看到這里面用到README.rst和LICENSE文件,并且指定打哪些包分發(fā)出去。
審核編輯:湯梓紅
-
結(jié)構(gòu)
+關(guān)注
關(guān)注
1文章
117瀏覽量
21527 -
python
+關(guān)注
關(guān)注
53文章
4753瀏覽量
84078
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論