一個小而全的Python專案示例
之前分享過幾篇Python的開發小作品,沒有過多提到專案組織。
本文展示一個常見的python專案結構。
Python的好處是程式碼很容易理解,而且語言層面簡潔。
但是就是因為太簡潔了,導致各種專案結構不一,本文演示一下學委常用的專案組織方式。
如下目錄所示
|-(根目錄)
|--requirements.txt # 專案依賴庫
|--test_requirements.txt # 測試依賴庫
|--setup.py # 專案配置指令碼
|--python_sample #為程式碼所在package
|--tests # 測試程式碼目錄
其他檔案介紹
.gitignore #git類程式碼倉庫必備,用來忽略某些特定檔案的checkin
pyvenv.cfg & bin & lib # 由virtualenv 建立的
.coverage && htmlcov # 由pytest coverage 建立的
專案開發
pip install -r requirements.txt
pip install -r test-requirements.txt
安裝專案
python setup.py install
執行程式碼
python -m python_sample.demo #執行示例模組內的demo程式的main函式
執行測試程式碼
cd tests && pytest
檢視測試覆蓋率
pytest --cov=python_sample tests
pytest --cov=python_sample --cov-report=html
測試報告生成在htmlcov目錄內。
程式碼分析
程式demo.py
- 定義了一個add函式,執行兩個引數的加法
- 定義了一個main函式,接受引數變數
- 結尾定義了程式的入口把引數傳遞給main函式
執行python_sample模組中的demo程式
測試程式碼解析
本文使用pytest的assert函式,它比unittest更加易用。
本文的一個簡單使用: assert 目標函式呼叫 比較符 結果,也就是下面的: assert add(1,1) == 2
後記
寫程式碼不寫測試就是流氓,或者不想讓別人使用。
這樣生成測試報告別人看到覆蓋率高,使用起來也更加放心。
對了,學委還有這個可以關注長期閱讀 =>雷學委趣味程式設計故事彙編
或者=> 雷學委NodeJS愛好系列
持續學習持續開發,我是雷學委! 程式設計很有趣,關鍵是把技術搞透徹講明白。 創作不易,請多多支援,點贊收藏支援學委吧!
相關文章
- SpringBoot專案建立與第一個SSM專案示例Spring BootSSM
- Python 建立一個Django專案PythonDjango
- 簡單的python web專案的docker-compose.yml 示例PythonWebDocker
- 如何建立一個完美的 Python 專案Python
- 一個練習專案,好玩的bbs-python-cherrypyPython
- 一個練習專案,好玩的bbs-python-tornadoPython
- 一個練習專案,好玩的bbs-python-flaskPythonFlask
- 一個練習專案,好玩的bbs-python-bottlePython
- 一個練習專案,好玩的bbs-python-pyramidPython
- python爬蟲初探--第一個python爬蟲專案Python爬蟲
- 5、Python入門____第一個Python專案:Hello WorldPython
- 一個BPMN流程示例帶你認識專案中流程的生命週期
- python實戰一個完整的專案-年終課程盤點|16 個 Python 綜合實戰專案合集Python
- AntDesignBlazor示例——新建專案Blazor
- go專案dockerfile示例GoDocker
- Django中型專案的目錄結構和一個應用建立啟動示例Django
- 關於一個java專案呼叫另一個java專案的心得Java
- vue專案中mapboxgl的幾個經典操作程式碼示例Vue
- 一個完整的scrapy 專案
- python大型專案_Python開源專案大集合:15個領域,181個專案 | 硬核乾貨Python
- 一個完整的機器學習專案在Python中的演練(一)機器學習Python
- 搭建一個專案
- 拯救Python新手的幾個專案實戰Python
- 一個使用示例,五個操作步驟!從此輕鬆掌握專案中工作流的開發
- 一個完整的機器學習專案在Python中演練(四)機器學習Python
- 一個完整的機器學習專案在Python中演練(三)機器學習Python
- 我的第一個Laravel專案Laravel
- github上一個好玩的專案Github
- 32個Python爬蟲實戰專案,滿足你的專案慌Python爬蟲
- 開源一個教學型分庫分表示例專案 shardingsphere-jdbc-demoJDBC
- Python爬蟲小專案:爬一個圖書網站Python爬蟲網站
- 32個Python爬蟲專案demoPython爬蟲
- 如何在Linux安裝Python+JDK+Mysql+Tomcat+Django以及簡單的跑一個java web專案和一個簡單的Django專案LinuxPythonJDKMySqlTomcatDjangoJavaWeb
- uwsgi + nginx 部署python專案(一)NginxPython
- 一個完整的機器學習專案在Python中的演練(三)機器學習Python
- 一個完整的機器學習專案在Python中的演練(二)機器學習Python
- 第一個activity專案
- 第一個SpringBoot專案Spring Boot