亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python開發(fā)生產(chǎn)環(huán)境常用的4個工具(實用推薦)

 更新時間:2024年01月23日 14:33:02   作者:簡訊Alfred?愛生活愛扣釘  
構(gòu)建優(yōu)秀的軟件需要遵循特定的規(guī)則并執(zhí)行行業(yè)標準,如何在真實的生產(chǎn)環(huán)境開發(fā)中體現(xiàn)呢?在這篇文章中,我將向您展示我在Python項目中設置的4種工具,以簡化開發(fā)工作流程并執(zhí)行一些最佳實踐,這些工具幫助我提高了效率,節(jié)省了時間,希望你讀完也能有所收獲

Poetry

在啟動一個新項目時,我通常會使用 Poetry 來管理依賴關系,并創(chuàng)建一個全新的虛擬環(huán)境。這在不同項目依賴同一軟件包的不同版本時非常有用。

Poetry 是一款出色的工具,因為它能快速解決依賴關系問題。通過友好的 CLI,它還易于使用,并有助于快速打包和發(fā)布代碼。

我們輸入 poetry init 來啟動一個新項目。

輸入 "yes" 后,就會創(chuàng)建一個包含項目元數(shù)據(jù)的 pyproject.toml 文件。該文件可以提交到 Git,并與同事共享,以重現(xiàn)相同的環(huán)境。項目設置完成后,就可以使用 add 命令添加依賴關系了。

示例:poetry add pandas

您還可以對依賴項進行分組。

例如,您可以將 black 和 isort 作為開發(fā)依賴項添加到 dev 組。

示例:poetry add black --group dev

如果我們再次查看 pyproject.toml 文件,就會發(fā)現(xiàn)其中有兩個獨立的依賴關系部分:

這有什么用?

有了群組,你就可以輕松管理每個環(huán)境的依賴關系。例如,如果您有開發(fā)和測試依賴項,您可能希望在生產(chǎn)環(huán)境中安裝項目庫時忽略它們。

你可以這樣使用它:

poetry install --without dev,test

這些依賴項安裝在哪里?

Poetry 為每個項目創(chuàng)建一個虛擬環(huán)境。它位于一個隱藏的 .venv 文件夾中。你可以使用 poetry shell 命令激活它,并訪問其特定的二進制文件(python、pip、black 等)。

Pre-commit hooks

作為一名 Python 開發(fā)人員,您可能會經(jīng)常遇到這樣的情況:您的團隊成員擁有不同的編碼風格,會讓代碼難以閱讀,導致工作效率的降低,并使協(xié)作變得困難。pre-commit 就是用來解決這個問題的。

pre-commit 是在每次提交前自動運行的腳本,用于檢查代碼是否存在錯誤。這些 hooks 與語言無關,有助于在提交到版本庫之前發(fā)現(xiàn)問題,確保只提交高質(zhì)量的代碼。

我通常會在 pre-commit 中添加這些腳本:

• black - 用于格式化代碼

• pydoctyle - 確保代碼文檔符合 Google 標準

• pycln - 刪除未使用的導入

• trailing-whitespace - 刪除多余的空格

• unitest - 運行單元測試并發(fā)現(xiàn)破壞性修改

要配置這些 pre-commit,首先需要安裝 pre-commit 軟件包。

# pip 安裝
pip install pre-commit

# poetry 安裝
poetry add pre-commit

然后,你需要在名為 .pre-commit-configuration.yaml 的 YAML 文件中定義 hooks。

下面是我通常使用的文件:

repos:
-   repo: https://github.com/psf/black
    rev: '23.1.0'
    hooks:
    -   id: black
        args: [--config=pyproject.toml]

-   repo: https://github.com/pycqa/pydocstyle
    rev: '6.3.0'
    hooks:
    -   id: pydocstyle
        args: ['.']

-   repo: https://github.com/hadialqattan/pycln
    rev: 'v2.1.5'
    hooks:
    -   id: pycln
        args: ['.']

-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: 'v4.4.0'
    hooks:
    -   id: trailing-whitespace

-   repo: local
    hooks:
    -   id: unittest
        name: run unit tests
        language: system
        pass_filenames: false
        entry: poetry run coverage run -m pytest

現(xiàn)在,您需要使用 install 命令安裝這些 hooks:

pre-commit install

可以開始了,讓我們試試這個。如果您嘗試提交文檔缺失的代碼,您將會收到這樣的錯誤信息,并且什么都不會提交到 git。

這將迫使你修復代碼并再次提交。

Makefiles

Makefile 將一系列 shell 命令組合在一個快捷方式。我們來看一個例子。想象一下,每次更新代碼時都要運行以下單元測試命令:

poetry run coverage run -m pytest
poetry run coverage report
poetry run coverage html

這些乏味且重復的工作完全可以使用 Makefile,將這三個命令集中到一個測試目標下。

現(xiàn)在,不用再鍵入這三行,只需運行:make test。這樣就避免了不必要的代碼鍵入或記憶復雜的指令。Makefile 還有助于簡化其他任務,例如:

• 安裝依賴項

• 設置環(huán)境變量

• 運行腳本

• 構(gòu)建和推送 Docker 映像

• 構(gòu)建文檔

• 設計代碼風格

下面是我在一個開源項目中使用的 Makefile 實例:

DOCKER_IMAGE := ahmedbesbes/cowriter
VERSION := $(shell git describe --always --dirty --long)
ifneq (,$(wildcard ./.env))
    include .env
    export
endif
run-cowriter: 
 @poetry run python -m src.main
run-cowriter-job: 
 @poetry run python -m src.job
run-web-agent: 
 @rm -rf db/ && poetry run python -m src.actions.web_searcher 
build-image:
 @docker build . -t $(DOCKER_IMAGE):$(VERSION)
push-docker-image-to-artifact-registry:
 @gcloud builds submit --tag gcr.io/$(PROJECT_ID)/run_cowriter_job
lint:
 @poetry run black .
test: 
 @poetry run coverage run -m pytest
 @poetry run coverage report
 @poetry run coverage html

Makefile 通常易于閱讀和理解,可以清楚地說明項目的不同部分是如何組織的,以及它們是如何相互依賴的。這對團隊新成員的入職培訓或一段時間后重新審視自己的項目特別有幫助。

python-dotenv

作為一名 Python 開發(fā)人員,常常會涉及到敏感信息和一些憑證(例如 auth 或者 token),下面是一些例子:

• 訪問第三方服務的 API 密鑰

• 密碼和憑證

• 域名或 URL

記住,絕不應在腳本中硬編碼版本化這些憑據(jù)。因為會導致許多不安全的因素。一種安全且良好的做法是將它們加載為環(huán)境變量。

import os

api_key = os.environ.get("API_KEY")

為了避免每次都使用 shell 命令導出環(huán)境變量,可以使用 Python 的 dotenv 軟件包:

1. pip install python-dotenv

2. 創(chuàng)建一個 .env 文件,其中包含鍵值對中的憑據(jù)

3. 將 .env 添加到 .gitignore 以防止 Git 提交它

4. 使用 python-dotenv 模塊將設置加載到 Python 文件中

希望這些技巧對你更好地構(gòu)建 Python 項目和自動化繁瑣的任務有所幫助。記得收藏,并反復閱讀。

以上就是Python開發(fā)生產(chǎn)環(huán)境常用的4個工具(實用推薦)的詳細內(nèi)容,更多關于Python開發(fā)生產(chǎn)環(huán)境工具的資料請關注腳本之家其它相關文章!

相關文章

  • Python獲取網(wǎng)絡時間戳的兩種方法詳解

    Python獲取網(wǎng)絡時間戳的兩種方法詳解

    在我們進行注冊碼的有效期驗證時,通常使用獲取網(wǎng)絡時間的方式來進行比對。本文將介紹兩種利用Python獲取網(wǎng)絡時間戳的方法,感興趣的可以了解一下
    2022-01-01
  • python smtplib模塊自動收發(fā)郵件功能(二)

    python smtplib模塊自動收發(fā)郵件功能(二)

    這篇文章主要為大家詳細介紹了python smtplib模塊自動收發(fā)郵件功能的第二篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • python 循環(huán)while和for in簡單實例

    python 循環(huán)while和for in簡單實例

    下面小編就為大家?guī)硪黄猵ython 循環(huán)while和for in簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • Matlab之使用HeatMap實現(xiàn)畫熱圖

    Matlab之使用HeatMap實現(xiàn)畫熱圖

    這篇文章主要介紹了Matlab之使用HeatMap實現(xiàn)畫熱圖方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Pandas篩選DataFrame含有空值的數(shù)據(jù)行的實現(xiàn)

    Pandas篩選DataFrame含有空值的數(shù)據(jù)行的實現(xiàn)

    本文主要介紹了Pandas篩選DataFrame含有空值的數(shù)據(jù)行的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • python庫matplotlib繪制坐標圖

    python庫matplotlib繪制坐標圖

    這篇文章主要為大家介紹了python庫matplotlib繪制坐標圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • python中altair可視化庫實例用法

    python中altair可視化庫實例用法

    在本篇文章里小編給大家整理的是一篇關于python中altair可視化庫實例用法,對此有興趣的朋友們可以學習下。
    2021-01-01
  • python實現(xiàn)微信自動回復機器人功能

    python實現(xiàn)微信自動回復機器人功能

    wxpy基于itchat,使用了 Web 微信的通訊協(xié)議,通過大量接口優(yōu)化提升了模塊的易用性,并進行豐富的功能擴展。這篇文章主要介紹了python實現(xiàn)微信自動回復機器人功能,需要的朋友可以參考下
    2019-07-07
  • python求眾數(shù)問題實例

    python求眾數(shù)問題實例

    這篇文章主要介紹了python求眾數(shù)問題實例,包括文件的讀寫、字典的運用及數(shù)值的計算等技巧,需要的朋友可以參考下
    2014-09-09
  • Pandas?DataFrame列快速轉(zhuǎn)換為列表(3秒學會!)

    Pandas?DataFrame列快速轉(zhuǎn)換為列表(3秒學會!)

    這篇文章主要給大家介紹了關于Pandas?DataFrame列如何快速轉(zhuǎn)換為列表的相關資料,在Python的pandas庫中可以使用DataFrame的tolist()方法將DataFrame轉(zhuǎn)化為列表,需要的朋友可以參考下
    2023-10-10

最新評論