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

Mac OS X 上的 Python 專案創建

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

介紹

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]刪除
最新教學 更多>
  • Go語言垃圾回收如何處理切片內存?
    Go語言垃圾回收如何處理切片內存?
    Garbage Collection in Go Slices: A Detailed AnalysisIn Go, a slice is a dynamic array that references an underlying array.使用切片時,了解垃圾收集行為至關重要,以避免潛在的內存洩...
    程式設計 發佈於2025-07-07
  • 如何從PHP中的數組中提取隨機元素?
    如何從PHP中的數組中提取隨機元素?
    從陣列中的隨機選擇,可以輕鬆從數組中獲取隨機項目。考慮以下數組:; 從此數組中檢索一個隨機項目,利用array_rand( array_rand()函數從數組返回一個隨機鍵。通過將$項目數組索引使用此鍵,我們可以從數組中訪問一個隨機元素。這種方法為選擇隨機項目提供了一種直接且可靠的方法。
    程式設計 發佈於2025-07-07
  • 在GO中構造SQL查詢時,如何安全地加入文本和值?
    在GO中構造SQL查詢時,如何安全地加入文本和值?
    在go中構造文本sql查詢時,在go sql queries 中,在使用conting and contement和contement consem per時,尤其是在使用integer per當per當per時,per per per當per. [&​​​​&&&&&&&&&&&&&&&默元組方...
    程式設計 發佈於2025-07-07
  • 如何干淨地刪除匿名JavaScript事件處理程序?
    如何干淨地刪除匿名JavaScript事件處理程序?
    刪除匿名事件偵聽器將匿名事件偵聽器添加到元素中會提供靈活性和簡單性,但是當要刪除它們時,可以構成挑戰,而無需替換元素本身就可以替換一個問題。 element? element.addeventlistener(event,function(){/在這里工作/},false); 要解決此問題,請考...
    程式設計 發佈於2025-07-07
  • 如何使用“ JSON”軟件包解析JSON陣列?
    如何使用“ JSON”軟件包解析JSON陣列?
    parsing JSON與JSON軟件包 QUALDALS:考慮以下go代碼:字符串 } func main(){ datajson:=`[“ 1”,“ 2”,“ 3”]`` arr:= jsontype {} 摘要:= = json.unmarshal([] byte(...
    程式設計 發佈於2025-07-07
  • 為什麼我的CSS背景圖像出現?
    為什麼我的CSS背景圖像出現?
    故障排除:CSS背景圖像未出現 ,您的背景圖像儘管遵循教程說明,但您的背景圖像仍未加載。圖像和样式表位於相同的目錄中,但背景仍然是空白的白色帆布。 而不是不棄用的,您已經使用了CSS樣式: bockent {背景:封閉圖像文件名:背景圖:url(nickcage.jpg); 如果您的html,cs...
    程式設計 發佈於2025-07-07
  • Java中假喚醒真的會發生嗎?
    Java中假喚醒真的會發生嗎?
    在Java中的浪費喚醒:真實性或神話? 在Java同步中偽裝喚醒的概念已經是討論的主題。儘管存在這種行為的潛力,但問題仍然存在:它們實際上是在實踐中發生的嗎? Linux的喚醒機制根據Wikipedia關於偽造喚醒的文章,linux實現了pthread_cond_wait()功能的Linux實現,...
    程式設計 發佈於2025-07-07
  • `console.log`顯示修改後對象值異常的原因
    `console.log`顯示修改後對象值異常的原因
    foo = [{id:1},{id:2},{id:3},{id:4},{id:id:5},],]; console.log('foo1',foo,foo.length); foo.splice(2,1); console.log('foo2', foo, foo....
    程式設計 發佈於2025-07-07
  • 如何檢查對像是否具有Python中的特定屬性?
    如何檢查對像是否具有Python中的特定屬性?
    方法來確定對象屬性存在尋求一種方法來驗證對像中特定屬性的存在。考慮以下示例,其中嘗試訪問不確定屬性會引起錯誤: >>> a = someClass() >>> A.property Trackback(最近的最新電話): 文件“ ”,第1行, attributeError:SomeClass實...
    程式設計 發佈於2025-07-07
  • Java的Map.Entry和SimpleEntry如何簡化鍵值對管理?
    Java的Map.Entry和SimpleEntry如何簡化鍵值對管理?
    A Comprehensive Collection for Value Pairs: Introducing Java's Map.Entry and SimpleEntryIn Java, when defining a collection where each element com...
    程式設計 發佈於2025-07-07
  • Java是否允許多種返回類型:仔細研究通用方法?
    Java是否允許多種返回類型:仔細研究通用方法?
    在Java中的多個返回類型:一種誤解類型:在Java編程中揭示,在Java編程中,Peculiar方法簽名可能會出現,可能會出現,使開發人員陷入困境,使開發人員陷入困境。 getResult(string s); ,其中foo是自定義類。該方法聲明似乎擁有兩種返回類型:列表和E。但這確實是如此嗎...
    程式設計 發佈於2025-07-07
  • 對象擬合:IE和Edge中的封面失敗,如何修復?
    對象擬合:IE和Edge中的封面失敗,如何修復?
    To resolve this issue, we employ a clever CSS solution that solves the problem:position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%)...
    程式設計 發佈於2025-07-07
  • 為什麼不````''{margin:0; }`始終刪除CSS中的最高邊距?
    為什麼不````''{margin:0; }`始終刪除CSS中的最高邊距?
    在CSS 問題:不正確的代碼: 全球範圍將所有餘量重置為零,如提供的代碼所建議的,可能會導致意外的副作用。解決特定的保證金問題是更建議的。 例如,在提供的示例中,將以下代碼添加到CSS中,將解決餘量問題: body H1 { 保證金頂:-40px; } 此方法更精確,避免了由全局保證金重置...
    程式設計 發佈於2025-07-07
  • Async Void vs. Async Task在ASP.NET中:為什麼Async Void方法有時會拋出異常?
    Async Void vs. Async Task在ASP.NET中:為什麼Async Void方法有時會拋出異常?
    在ASP.NET async void void async void void void void void的設計無需返回asynchroncon而無需返回任務對象。他們在執行過程中增加未償還操作的計數,並在完成後減少。在某些情況下,這種行為可能是有益的,例如未期望或明確預期操作結果的火災和...
    程式設計 發佈於2025-07-07

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

Copyright© 2022 湘ICP备2022001581号-3