建自己的Python項目倉庫,使用工具:GitHub(遠程倉庫)、GitHub Desktop(版本控制工具)、VSCode(代碼編輯器)

結合 GitHub(遠程倉庫)、GitHub Desktop(版本控制工具)、VSCode(代碼編輯器) 三個工具,以下是更具體的Python項目倉庫搭建流程,包含工具協同操作的詳細步驟:

一、整體流程概覽

  1. GitHub:創建遠程倉庫(代碼的“云端備份”)。
  2. GitHub Desktop:將遠程倉庫克隆到本地,管理代碼提交、推送、分支等版本操作。
  3. VSCode:打開本地倉庫,編寫代碼、管理依賴、運行測試,與前兩者無縫聯動。

二、詳細步驟:從0到1搭建倉庫

Step 1:在GitHub上創建遠程倉庫(云端初始化)
  1. 登錄GitHub官網(https://github.com,有時需要科學上網),點擊右上角“+”→“New repository”。
  2. 填寫倉庫信息:
    • Repository name:建議與項目名一致(如python-data-tools)。
    • Description:簡要描述項目(如“一個處理CSV數據的Python工具庫”)。
    • 勾選 “Add a README file”(自動生成基礎說明文件)。
    • 勾選 “Add .gitignore”,并在下拉框選擇 “Python”(自動生成Python專屬的忽略規則)。
    • 選擇許可證(如“MIT License”,開源項目必備)。
  3. 點擊“Create repository”,遠程倉庫創建完成(如https://github.com/你的用戶名/python-data-tools)。
Step 2:用GitHub Desktop克隆倉庫到本地(關聯本地與云端)
  1. 打開GitHub Desktop,點擊左上角“File”→“Clone repository”。
  2. 在彈出的窗口中:
    • 切換到“GitHub.com”標簽,找到剛創建的倉庫(python-data-tools)。
    • 選擇本地保存路徑(如D:\projects\python-data-tools),點擊“Clone”。
  3. 克隆完成后,GitHub Desktop會自動加載倉庫,顯示初始文件(README.md.gitignore等)。
Step 3:用VSCode打開本地倉庫并搭建目錄結構
  1. 在GitHub Desktop中,本地倉庫名在左上角,右鍵倉庫名稱→點擊“Open in Visual Studio Code”(直接用VSCode打開本地倉庫)。
  2. 在VSCode的“資源管理器”(左側目錄列表,光標放入時出現右上角有增加目錄和增加文件項)中,按以下結構創建目錄和文件(僅示例):
python-data-tools/
├── src/                    # 源代碼目錄(大型項目推薦)
│   └── datatools/          # 核心包(自定義名稱)
│       ├── __init__.py     # 包標識(內容可空)
│       ├── cleaner.py      # 數據清洗模塊
│       └── analyzer.py     # 數據分析模塊
├── tests/                  # 測試目錄
│   ├── test_cleaner.py     # 測試cleaner.py
│   └── test_analyzer.py    # 測試analyzer.py
├── examples/               # 示例腳本
│   └── demo.py             # 演示如何使用核心功能
├── requirements.txt        # 依賴列表
└── README.md               # 項目說明(補充完善)
Step 4:用VSCode編寫核心文件內容
(1)編寫核心代碼(以src/datatools/cleaner.py為例)

在VSCode中打開文件,輸入功能代碼:

def remove_duplicates(data: list) -> list:"""移除列表中的重復元素并保持順序"""seen = set()return [x for x in data if not (x in seen or seen.add(x))]def trim_whitespace(text: str) -> str:"""去除字符串首尾空格"""return text.strip()
(2)編寫測試代碼(tests/test_cleaner.py

安裝測試工具(在VSCode終端中執行,終端可通過Ctrl+``打開):

pip install pytest  # 安裝pytest測試框架

編寫測試用例:

from src.datatools.cleaner import remove_duplicates, trim_whitespacedef test_remove_duplicates():assert remove_duplicates([1, 2, 2, 3]) == [1, 2, 3]assert remove_duplicates(["a", "a", "b"]) == ["a", "b"]def test_trim_whitespace():assert trim_whitespace("  hello  ") == "hello"assert trim_whitespace("world") == "world"
(3)生成依賴文件(requirements.txt

在VSCode終端中導出當前環境依賴:

pip freeze > requirements.txt  # 將已安裝的包(如pytest)寫入文件

文件內容示例:

pytest==7.4.0
(4)完善README.md(在VSCode中編輯)

補充項目說明,包含安裝、使用示例:

# Python Data Tools  
用于數據清洗和分析的輕量工具庫。  ## 安裝  bash
pip install -r requirements.txt## 快速使用  
python
from src.datatools.cleaner import remove_duplicates
print(remove_duplicates([1, 2, 2, 3]))  # 輸出: [1, 2, 3]## 運行測試  
```bash
pytest tests/  # 所有測試通過則無報錯
Step 5:用GitHub Desktop提交并推送到GitHub
  1. 回到GitHub Desktop,左側會自動檢測到VSCode中修改/新增的文件(標綠為新增,標黃為修改)。
  2. 在下方“Summary”輸入提交說明(如“初始化項目:添加數據清洗模塊和測試”),點擊“Commit to main”(提交到本地倉庫)。
  3. 點擊頂部“Push origin”,將本地提交推送到GitHub遠程倉庫(此時GitHub網頁上的倉庫會同步更新)。
    注:此時若網絡不穩時,用科學上網
Step 6:日常開發流程(工具協同)
  • 修改代碼:在VSCode中編輯文件(自動保存或Ctrl+S)。
  • 提交變更:GitHub Desktop會實時顯示修改,填寫說明后“Commit”。
  • 同步遠程:點擊“Push origin”推送本地修改;若他人更新了遠程倉庫,點擊“Fetch origin”→“Pull origin”拉取最新代碼(避免沖突)。
  • 分支管理:在GitHub Desktop中點擊“Current branch”→“New branch”創建功能分支(如feature/add-plot),在VSCode中開發完成后,通過GitHub Desktop合并到main分支并推送。

三、工具協同技巧

  1. VSCode擴展增強體驗

    • 安裝 “Python” 擴展(微軟官方):提供代碼提示、測試運行、語法檢查。
    • 安裝 “Git History”:在VSCode中直接查看提交歷史、文件修改記錄。
    • 安裝 “Todo Tree”:標記代碼中的TODO,方便跟蹤待完成任務。
  2. GitHub Desktop與VSCode聯動

    • 在GitHub Desktop中右鍵文件→“Open in Visual Studio Code”:快速打開修改的文件。
    • 在VSCode的左下角可直接切換分支(與GitHub Desktop同步)。
  3. 依賴管理優化

    • 復雜項目推薦用pyproject.toml替代requirements.txt,在VSCode中安裝pip-tools擴展,自動維護依賴版本。

四、倉庫模板復用(快速上手)

  1. 在GitHub上搜索 “python-template”,找到帶星標較多的倉庫(如github.com/rochacbruno/python-package-template)。
  2. 進入該模板頁面,點擊右上角“Use this template”→“Create a new repository”,生成基于模板的新倉庫。
  3. 用GitHub Desktop克隆到本地,用VSCode打開后直接修改內容(保留模板的目錄結構和配置文件)。

通過以上流程,三個工具各司其職:GitHub負責遠程托管,GitHub Desktop簡化版本控制,VSCode專注代碼開發,形成高效的協作閉環。即使是新手,也能通過可視化操作完成規范的Python項目管理。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/96686.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/96686.shtml
英文地址,請注明出處:http://en.pswp.cn/web/96686.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iDEA Lombok 失效 和 slf log 變量失效問題

1. lombok 失效:檢查下配置有沒有使用注解處理器;且這個處理中有沒有帶上版本;版本號需要與上面引入的依賴版本一致。2. 對于找不到 log 變量的操作,則是使用下面將這個變量使用下面的代碼定義出來;上面去掉 slf4j注解…

go資深之路筆記(二) sync.Pool

一、 使用 sync.Pool 減少 GC 壓力,提升性能 簡單講下go的gc,它的核心原理就是三色標記法和寫屏障,可以實現優秀并發處理。gc一般不會頻繁調用,他是根據GOGC的值來判斷,具體就是上次觸發GC后總堆值大于等于上次的(1GO…

【面試筆記-Java開發崗】

目錄:1. synchronized 和 ReentrantLock 的區別及應用場景2. HashMap 與 LinkedHashMap 的區別3. ConcurrentHashMap 的數據結構及 JDK1.7 與 JDK1.8 區別4. Spring 常用的模式及應用場景5. 事務的四大特性(ACID)6. 鎖機制:行級鎖…

CSS :has() 選擇器詳解:為什么它是“父選擇器”?如何實現真正的容器查詢?

一、前言 在傳統的 CSS 中,我們只能根據元素的自身屬性、類名、ID 或其子元素/兄弟元素來設置樣式,卻無法根據其父元素或后代元素的狀態來改變自身樣式。 直到 :has() 選擇器的出現,這一局面被徹底改變。 :has() 被稱為 “父選擇器” 或 “…

李宏毅 Deep Learning

感謝李宏毅老師qwq1. 基礎概念1.1 Machine Learning問題引出:預測后面幾天的觀看人數;初步構建模型:擬合效果不好,就是在原數據上平移了一段距離;此處構建模型的本質:利用特征工程,將“多維特征…

【AI論文】分享即關愛:基于集體強化學習經驗共享的高效語言模型(LM)后訓練方法

摘要:利用強化學習(RL)對語言模型(LMs)進行后訓練,無需監督微調即可增強其復雜推理能力,DeepSeek-R1-Zero便證明了這一點。然而,要有效利用強化學習訓練語言模型,需要進行…

工業網關在汽車沖壓車間的應用:EtherNet/IP轉EtherCAT集成實踐

在汽車零部件沖壓車間中,生產線的高效協同與精準控制是提升整體產能的關鍵。隨著自動化設備的多樣化,不同協議的設備之間的通信成為技術難點。例如,羅克韋爾PLC通常采用EtherNet/IP協議,而許多高性能機械臂則依賴EtherCAT協議。如…

【底層機制】【C++】std::move 為什么引入?是什么?怎么實現的?怎么正確用?

C++底層機制推薦閱讀 【C++基礎知識】深入剖析C和C++在內存分配上的區別 【底層機制】【C++】vector 為什么等到滿了才擴容而不是提前擴容? 【底層機制】malloc 在實現時為什么要對大小內存采取不同策略? 【底層機制】剖析 brk 和 sbrk的底層原理 【底層機制】為什么棧的內存…

Redis面試相關

數據過期策略 惰性刪除 當用到那個key的時候再檢查是否過期,過期則刪除,有效則返回key 優點是可以節省檢查過期的時間 缺點是會浪費內存 定期刪除 每隔一段時間對一些key進行檢查并且刪除里面的過期key 有兩種模式 slow模式是定時任務,頻率是…

知識輸出零散沒有體系怎么辦

當面臨知識輸出零散、不成體系的困境時,其根本原因在于未能建立一個從輸入、整合到輸出的閉環系統。要解決這一問題,核心在于構建個人知識管理體系、掌握結構化思維與表達能力、運用合適的工具與方法進行固化、持續實踐并迭代優化。這意味著,…

【C語言選擇排序算法詳解】+ 算法性能優化 + 動態演示實現

文章目錄一、算法介紹二、算法特點三、代碼實現與解析四、代碼解析1. 打印數組函數2. 選擇排序核心邏輯3. 動態展示實現4. 主函數五、算法優化思路與實現優化1:減少交換次數優化原理:優化2:雙向選擇排序優化原理:優化3&#xff1a…

棧(Java)

提示:多練才是王道,加油?(?????)? 棧Java1. 棧2. Java中棧的其中兩種實現方式2.1 Stack類2.1.1 Stack的模擬實現2.2 LinkedList類3. 典型習題講解3.1 逆波蘭表達式求值3.2 匹配括號3.3 合理彈出序列3.4 最小棧1. 棧 棧是一種特殊的線性表,其只允許在固定的一…

LayaAir鼠標(手指)控制相機旋轉,限制角度

切換天空盒腳本掛載到相機身上 const { regClass, property } Laya;regClass() export class SmoothCameraController extends Laya.Script {declare owner: Laya.Camera;// 旋轉靈敏度property({ type: Number, name: "旋轉靈敏度" })public rotationSensitivity:…

【數據結構入門】排序算法(4)歸并排序

目錄 1.排序的原理 1.1 保證子數組有序 1.2 時間復雜度 2. 遞歸實現 2.1 思路 2.2 代碼 3. 非遞歸實現 3.1 思路 3.2 代碼 4.面試題 4.1 題目 4.2 思路 1.排序的原理 歸并排序是外排序,所謂外排序就是說能夠對文件中的數據進行排序。 ①首先&#xff…

FLEXSPI_Init 硬件故障問題

使用官方例程發現FLEXSPI_Init會引起硬件故障,查閱相關帖子發現主要有兩個可能:1、外部閃存配置差異修改 LUT(查找表)命令:示例中擦除扇區命令為 0xD7,寫狀態寄存器命令為 0x01,需分別改為 閃存…

如何用 Rust 重寫 SQLite 數據庫(一):項目探索

要使用 Rust 重寫 SQLite 數據庫,我們需要實現一個簡化的關系型數據庫核心功能(如 SQL 解析、存儲引擎、事務管理)。以下是一個分步實踐指南,包含關鍵代碼示例。一、項目規劃 我們將實現一個超簡化數據庫 MiniSQL,支持…

JVM之堆(Heap)

一、堆的核心特性 唯一性與共享性 每個JVM實例僅有一個堆,所有線程共享,但可通過線程私有緩沖區(TLAB)減少多線程分配沖突。內存結構演變 JDK 7及之前:堆分為新生代(Young)、老年代(…

單片機的RAM與ROM概念

RAM與ROM1、RAM與ROM2、 bss、data、heap、stack、text詳細講解3、詳細探討 TCM、OCRAM 和 HBNRAM 之間的區別及其具體作用。3.1、TCM(Tightly Coupled Memory)3.2、 OCRAM(On Chip RAM)3.3、HBNRAM (Hibernate RAM)3.4、總結1、R…

實驗3:事件處理(2學時)

實驗目的(1)熟練掌握 v-on 指令的用法,學會使用 v-on 指令監聽 DOM 元素的事件,并通過該事件觸發調用事件處理程序。(2)掌握v-on 指令修飾符的基本用法。實驗內容實現購物車功能的拓展(商品數量…

商品庫存扣減方案

文章目錄1. Lua腳本 Redis(業界首選,綜合最優)2. Redis原子命令(DECRBY 結果校驗)3. Redis事務(MULTI/EXEC)4. 分布式鎖(基于Redis實現)5. Redisson客戶端封裝&#xf…