」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Mac OS X 上的 Python 專案創建

Mac OS X 上的 Python 專案創建

發佈於2024-11-09
瀏覽:869

介紹

PyFabricate 是一款 Mac OS X 應用程序,可簡化 Python 專案的建立。 自從我創作它以來,顯然它是我認為 Python 專案應該是什麼樣子的一個固執己見的版本。 此外,我還有一個特定的工具集,可以用來編寫 Python Mac OS X 應用程式。 但是,我嘗試透過公開建立專案文件的範本來建立一些自訂。 稍後詳細介紹。

概述

PyFabricate 使用類似精靈的介面來查詢專案詳細資訊。

自以為是的假設

  • 開發人員使用 HomeBrew 安裝固執己見的依賴項。

    • Python 透過 pyenv 進行管理(用於創建的虛擬環境)
    • direnv 已安裝(可選)
  • 專案名稱與模組包名稱相同

安裝

從此處獲取當前版本。

將此檔案複製到您的 Mac OS 應用程式資料夾。 該應用程式是 Apple 程式碼簽署的,因此您將收到一條簡單的訊息,您必須在第一次執行它時確認。

項目骨架詳細信息

以下是 PyFabricator 所建立的初始骨架的範例。 它現在確實顯示了它創建的虛擬環境。 稍後詳細介紹。

Python Project Creation on Mac OS X

本質上,PyFabricate 會建立 src 和測試目錄。 在專案根目錄中它建立以下檔案:

  • .envrc
  • .gitignore
  • .mypi.ini
  • .python_version
  • 。執照
  • README.md
  • pyproject.toml
  • 要求.txt

此外,PyFabricate 在所有適當的位置建立所有 python 套件檔案 (__init__.py)。 最後,它放置了兩組日誌記錄配置文件,一組用於您的應用程序,一組用於您的單元測試。

在製造結束時,PyFabricate 會建立一個 Python 虛擬環境。由於技術限制,PyFabricate 無法使用 pyenv 版本的 Python 來建立虛擬環境。 因此,它取決於自製軟體安裝的版本。

嚮導介面

嚮導 UI 是一個 4 步過程,其中 PyFabricate 收集足夠的項目詳細信息,用於填充骨架模板。 這些模板使用以下不言自明的替換標記。

代幣名稱 描述
PROJECT_NAME 用於建構基礎專案目錄,是Python模組名稱
描述 作為描述放置在生成的 pyproject.toml 中
OWNER_NAME 作為作者姓名和維護者姓名放置在生成的 pyproject.toml 中
OWNER_EMAIL 在產生的 pyproject.toml 中作為作者和維護者的電子郵件地址
關鍵字 用作產生的pyproject.toml中的項目關鍵字
PYTHON_VERSION 在產生的.gitignore檔案中使用以排除包含虛擬環境的目錄。 另外附加為產生的虛擬環境的目錄名稱。 例如,'pyenv-3.12.0'

以下是pyroject.toml模板的帶註釋的圖形。

Python Project Creation on Mac OS X

精靈 UI 步驟 1 - 簡介

這一步是PyFabricate的介紹。 在此步驟之後,PyFabricate 會盡最大努力確保滿足其執行依賴性。 如果不是,開發者無法繼續執行此步驟。

Python Project Creation on Mac OS X

嚮導 UI 步驟 2 - 項目詳細信息

在此步驟 PyFabricate 收集專案特定資訊。 其中大部分用於填充 pyproject.toml 模板。

Python Project Creation on Mac OS X

精靈 UI 步驟 3 - 基本目錄

PyFabricate 假設開發人員將其所有 Python 專案保存在一個子目錄中。 這是一種固執己見的觀點,只是一種組織偏好。

Python Project Creation on Mac OS X

精靈 UI 步驟 4 - Python 版本

PyFabricate 查詢 pyenv 以取得開發人員安裝的 Python 版本。 這些是 PyFabricate 可以創建 Python 虛擬環境的唯一環境。

Python Project Creation on Mac OS X

行動日誌

在精靈結束時,PyFabricate 在建立專案時會顯示一個日誌。 以下是範例日誌。

Python Project Creation on Mac OS X

客製化

如前所述,開發人員可以自訂專案產生的某些方面。 PyFabricate 將其使用的範本儲存在 $HOME/.config/pyfabricate/templates 中,如下所示。

Python Project Creation on Mac OS X
例如,開發人員可能想要使用差異許可證。 簡單地,替換LICENSE.template檔案

包起來

PyFabricate 目前只有 0.5.0 版本。 我目前正在研究添加附加功能並消除限制。

版本聲明 本文轉載於:https://dev.to/hasii2011/python-project-creation-on-mac-os-x-3bb4?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何在Java列表中有效計算元素的發生?
    如何在Java列表中有效計算元素的發生?
    計數列表中的元素出現在列表 中,在java編程中,列舉列表中列舉元素出現的任務來自列表。為此,收集框架提供了全面的工具套件。 在這種情況下,Batocurrences變量將保持值3,代表動物列表中的“ BAT”出現的數量。 &&& [此方法是簡單的,可以得出準確的結果,使其成為計算列表中元素出現的...
    程式設計 發佈於2025-02-19
  • 可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    https://webthemez.com/demo/sticky-multi-header-scroll/index.html </main> <section> display:grid; grid-template-col...
    程式設計 發佈於2025-02-19
  • 如何使用替換指令在GO MOD中解析模塊路徑差異?
    如何使用替換指令在GO MOD中解析模塊路徑差異?
    克服go mod中的模塊路徑差異 github.com/coreos/etcd/integration imports :解析GO.mod:模塊將其路徑聲明為: go.etcd.io/bbolt [&&&&&&&&&&&&&&&&&&&&&&&&&&&& github.com/coreos/b...
    程式設計 發佈於2025-02-19
  • 為什麼PYTZ最初顯示出意外的時區偏移?
    為什麼PYTZ最初顯示出意外的時區偏移?
    與pytz 最初從pytz獲得特定的偏移。例如,亞洲/hong_kong最初顯示一個七個小時37分鐘的偏移: 差異源 考慮以下代碼: < pre> import pytz [&& &&&&&&華&& && && && &&&華dt2 = hk.localize(dateTime(2012,1...
    程式設計 發佈於2025-02-19
  • 插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入記錄時如何解決“一般錯誤:2006 MySQL 服務器已消失”介紹:將數據插入MySQL 數據庫有時會導致錯誤“一般錯誤:2006 MySQL 服務器已消失”。當與服務器的連接丟失時會出現此錯誤,通常是由於 MySQL 配置中的兩個變量之一所致。 解決方案:解決此錯誤的關鍵是調整wait_tim...
    程式設計 發佈於2025-02-19
  • 如何使用Python的記錄模塊實現自定義處理?
    如何使用Python的記錄模塊實現自定義處理?
    使用Python的Loggging Module 確保正確處理和登錄對於疑慮和維護的穩定性至關重要Python應用程序。儘管手動捕獲和記錄異常是一種可行的方法,但它可能乏味且容易出錯。 解決此問題,Python允許您覆蓋默認的異常處理機制,並將其重定向為登錄模塊。這提供了一種方便而係統的方法來捕獲...
    程式設計 發佈於2025-02-19
  • 如何使用PHP從XML文件中有效地檢索屬性值?
    如何使用PHP從XML文件中有效地檢索屬性值?
    從php 您的目標可能是檢索“ varnum”屬性值,其中提取數據的傳統方法可能會使您留下PHP陷入困境。 使用simplexmlelement :: attributes()函數提供了簡單的解決方案。此函數可訪問對XML元素作為關聯數組的屬性: - > attributes()為$ att...
    程式設計 發佈於2025-02-19
  • Java是否允許多種返回類型:仔細研究通用方法?
    Java是否允許多種返回類型:仔細研究通用方法?
    在java中的多個返回類型:一個誤解介紹,其中foo是自定義類。該方法聲明似乎擁有兩種返回類型:列表和E。但是,情況確實如此嗎? 通用方法:拆開神秘 [方法僅具有單一的返回類型。相反,它採用機制,如鑽石符號“ ”。 分解方法簽名: :本節定義了一個通用類型參數,E。它表示該方法接受擴展FOO類的...
    程式設計 發佈於2025-02-19
  • 如何限制動態大小的父元素中元素的滾動範圍?
    如何限制動態大小的父元素中元素的滾動範圍?
    在交互式界面中實現垂直滾動元素的CSS高度限制 考慮一個佈局,其中我們具有與可滾動的映射div一起移動的subollable map div用戶的垂直滾動,同時保持其與固定側邊欄的對齊方式。但是,地圖的滾動無限期擴展,超過了視口的高度,阻止用戶訪問頁面頁腳。 可以限制地圖的滾動,我們可以利用CS...
    程式設計 發佈於2025-02-19
  • 如何克服PHP的功能重新定義限制?
    如何克服PHP的功能重新定義限制?
    克服PHP的函數重新定義限制在PHP中,多次定義一個相同名稱的函數是一個no-no。嘗試這樣做,如提供的代碼段所示,將導致可怕的“不能重新列出”錯誤。 // error:“ coss redeclare foo()” 但是,php工具腰帶中有一個隱藏的寶石:runkit擴展。它使您能夠靈活...
    程式設計 發佈於2025-02-19
  • 如何在JavaScript對像中動態設置鍵?
    如何在JavaScript對像中動態設置鍵?
    如何為JavaScript對像變量創建動態鍵,嘗試為JavaScript對象創建動態鍵,使用此Syntax jsObj['key' i] = 'example' 1;將不起作用。正確的方法採用方括號:他們維持一個長度屬性,該屬性反映了數字屬性(索引)和一個數字屬性的數量。標準對像沒有模仿這...
    程式設計 發佈於2025-02-19
  • 如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    [2最後一行與數據集中的每個不同標識符關聯。考慮以下數據: 1 2014-02-01 kjkj 1 2014-03-11 ajskj 3 2014-02-01 sfdg 3 2014-06-12 fdsa 為了檢索數據集中每個唯一ID的最後一行信息,您可以在操作員上使用Postgres的有效效...
    程式設計 發佈於2025-02-19
  • 為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    mySQL錯誤#1089:錯誤的前綴鍵錯誤descript 理解prefix keys primary鍵(movie_id(3))primary鍵(Movie_id) primary鍵(Movie_id) primary鍵(Movie_id) > `這將在整個Movie_ID列上建立標...
    程式設計 發佈於2025-02-19
  • 如何在整個HTML文檔中設計特定元素類型的第一個實例?
    如何在整個HTML文檔中設計特定元素類型的第一個實例?
    [2單獨使用CSS,整個HTML文檔可能是一個挑戰。 the:第一型偽級僅限於與其父元素中類型的第一個元素匹配。 以下CSS將使用添加的類樣式的第一個段落: }
    程式設計 發佈於2025-02-19

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3