在真正項目中,一般使用PyCharm或VSCode開發。那有的小伙伴就問了,項目文件目錄有沒有一個標準的結構?
應該沒有唯一的統一標準,但Python社區大佬Kenneth Reitz在2013年提出一個Python項目目錄結構,推薦你日后項目中參考。
Python項目推薦結構
Kenneth推薦目錄結構,如下所示:
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個文件夾,17個文件。
先來看看第一個文件夾docs,它是項目相關文檔,包括依賴包安裝的Makefile和make.bat,項目配置conf.py,項目介紹文檔index.rst,是比README.rst更細化的一個文檔,README.rst更像一個項目總覽。
第二個文件夾sample,在Python中一般叫做包(package),它是項目核心代碼,一般會有多個這種包,__init__.py是Python包包括的文件。core.py和helpers.py是sample包里兩個核心模塊。
第三個包tests,是對應于sample包的單元測試包,里面的模塊名稱一般以test開頭,測試sample里的每個模塊。
setup.py是做什么的?
有了上面三個最主要的包外,文件最重要的有setup.py,這個文件是做什么的?
簡單來說,setup.py是和打包相關的配置模塊,一般結合setuptools。
有了setup.py,我們就可以安裝包到本地全局環境,或者上傳到PyPi,這樣全世界開發者都有機會搜索到你的包,并使用pip安裝上你的包。
里面代碼相對比較標準和固定,比如在這個項目里代碼如下:
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文件,并且指定打哪些包分發出去。
審核編輯:湯梓紅
-
結構
+關注
關注
1文章
117瀏覽量
21615 -
python
+關注
關注
56文章
4802瀏覽量
84889
發布評論請先 登錄
相關推薦
如何幫助孩子高效學習Python:開源硬件實踐是最優選擇
pytorch和python的關系是什么
STM32項目分享:智慧農業(機智云)系統
![STM32<b class='flag-5'>項目</b>分享:智慧農業(機智云)系統](https://file.elecfans.com/web2/M00/40/03/pYYBAGJrSWqAb-nSAAAXmKtCFeo833.jpg)
Python建模算法與應用
opencv-python和opencv一樣嗎
python訓練出的模型怎么調用
用pycharm進行python爬蟲的步驟
NucleiStudio編譯沒報錯但是項目結構中有錯,為什么?
python解析netflow數據到csv的流程詳解
![<b class='flag-5'>python</b>解析netflow數據到csv的流程<b class='flag-5'>詳解</b>](https://file1.elecfans.com/web2/M00/D9/FE/wKgaomYpzAiAPrQGAABVCN7G14M811.png)
評論