Python多版本管理 (Windows)

更新於 2024/09/30閱讀時間約 3 分鐘

有些儀控供應商釋出的dll僅有32bit版,64bit的ctype不能開啟。所以系統裡必須備有不同版本的python。開始多版本安裝之前,順便升級一下主要的python版本,通常建議整個砍掉重灌,也可以用pip直接升級。

pip ​install --upgrade python

重灌前要先把已經安裝的library套件名稱以及版號記錄下來,方便後續作業。可以用pip來產生紀錄檔,檔案儲存位置是在目前提示字元顯示的資料夾。找到生成的requirement.txt,打開檔案可以看到所有套件後面有"==X.XX.XX"代表指定某版號,刪掉讓pip直接安裝最新版套件。另外也可以修改"=="調整安裝版號,">"是大於某版本、"<"是小於某版本"、"~="僅把尾數小版號升到最新版、"<, >="是指定版本區間,=為可選。

Btw,OpenCV裝opencv-contrib-python就是最完整的版本,不用再裝其他的,Qt除了裝PyQtx之外還要裝qtx-applications取得版面設計輔助工具,其中x是qt版本,目前最新是6。

# 把已安裝套件列表存進指定檔名
pip freeze > requirement.txt
# 安裝列表中的所有套件​
pip install -r requirement.txt

然後開始移除舊的python,移除後會殘留libaray等相關資料夾以及系統Path環境變數,可以一併刪掉。資料夾直接delete。環境變數要到系統內容-->進階設定-->環境變數-->系統變數-->Path-->編輯,可以看到如圖顯示有一些不要的路徑還保留著,可以都刪掉。

raw-image

接著開始安裝,我習慣都設為系統安裝(for all users),檔案會安裝在\Program Files\比較好找。先裝最常用的版本,常用版本要把他加進PATH環境變數,因為日常用的就是這個。接著把用pip把之前的套件都裝回來。安裝好之後安裝其他的版本,像是32bit或不同版號,然後就不要加進PATH。

raw-image
raw-image

-----------------------------------------------------------------------

所有版本都裝好就可以用版控工具進行版控,可用的工具有vituralEnv、IDLE、VS Code和py launcher。

VENV是python的套件,要先pip安裝。venv可以指定不同的python版本到個別虛擬環境,教學文件很多不贅述。

IDLE是python原生程式編輯器,在.py檔按滑鼠右鍵可以用IDLE開啟.py檔。若安裝一個以上python就可以選擇開啟的版本。但他有個缺點是不會顯示小版號。

raw-image

VS Code按"Ctrl + shift +P"快速鍵或點一下search bar開啟command terminal,然後點select interpreter選擇直譯器版本。可以看到圖最下面列出兩個可以用的版本,最前面標星號的是目前使用中。

raw-image

最後Py launcher我沒在用,不說明。

avatar-img
6會員
63內容數
ktest
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
hls Ding的沙龍 的其他內容
Vertexes和linedefs是構成doom關卡地圖的主要參數,在WAD的每個地圖區塊都會存放屬於該地圖的vertexes和linedefs。
Reject是附屬在map data裡面的一個表格,用來設定放在某個sector的怪物的視線有機會看到哪幾個sector的玩家。觸發使用查表的條件尚待確認。
blockmap是附屬在map data裡面的一個資料結構,說明blockmap的結構
兩種在windows系統用win32 api關閉輸入法的作法
在樹莓派安裝OpenCV的紀錄。板子是樹莓派3B(沒有+),系統raspbian bullseye 32bit灌到USB隨身碟。
Vertexes和linedefs是構成doom關卡地圖的主要參數,在WAD的每個地圖區塊都會存放屬於該地圖的vertexes和linedefs。
Reject是附屬在map data裡面的一個表格,用來設定放在某個sector的怪物的視線有機會看到哪幾個sector的玩家。觸發使用查表的條件尚待確認。
blockmap是附屬在map data裡面的一個資料結構,說明blockmap的結構
兩種在windows系統用win32 api關閉輸入法的作法
在樹莓派安裝OpenCV的紀錄。板子是樹莓派3B(沒有+),系統raspbian bullseye 32bit灌到USB隨身碟。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
OpenCV 支援讀取和保存 TIFF(Tagged Image File Format)檔案,但對於合併多張圖片成為多頁的 TIFF 檔案,OpenCV 沒有的這功能。 可以使用 Pillow 庫(Python Imaging Library, PIL 的分支)來實現。
RPG Battle Game 說明文件 簡介 這是一個簡單的回合制 RPG 遊戲,玩家與怪物進行戰鬥,雙方有不同的技能可以使用。遊戲目標是擊敗對手,將其生命值削減至零。 程式架構 1. Character 類別 Character 是一個基礎類別,表示遊戲中的角色,包括玩家和怪物。所有角
Thumbnail
本文將展示使用不同激活函數(ReLU 和 Sigmoid)的效果。 一個簡單的多層感知器(MLP)模型來對 Fashion-MNIST 資料集進行分類。 函數定義 Sigmoid 函數 Sigmoid 函數將輸入壓縮到 0到 1 之間: 特性: 輸出範圍是 (0,1)(0, 1)(0,1
Thumbnail
呈上次使用logging來撰寫日誌,利用類別包裝的方式,可實現多個日誌紀錄器,但發現這樣就失去它原先,可以回傳是誰呼叫他並記錄行數的功能。 [Python]使用logging創建兩個以上的日誌紀錄 若開啟函式名稱、行數及訊息的功能,就會像這樣,幾乎都是記錄到,我定義中類別的函式
多型性(polymorphism)是物件導向中的一個重要概念,它指的是同一個方法或函式在不同的物件類別中可以有不同的行為。在 Python 中,多型性通常是通過繼承和方法重寫(method overriding)來實現的。 主要是為了不同資料類型的實體提供統一的介面,我們藉由下面的程式範例來多理解
Thumbnail
最近在調整跟優化效能時,又來複習了 Multi-threading 和 Multiprocessing 的概念,在面對大數據時,能夠有效利用多核心處理器的能力,對於提升程式執行效能至關重要。 Python 提供多線程(Multi-threading) 和多進程 (Multiprocessing)
Thumbnail
一早看著IThome的新聞發現到這個標題「📢 PyPI新帳號現需要啟用雙因素驗證才能執行管理操作」, 而近期幾乎都在接觸Python語言, 在Python的生態圈裡相信對於「pip install…」應該相當熟悉了吧! 但對於背後的平台相信我們不曾仔細去了解一番, 這好藉著這次的觀點也順便來介紹一
Thumbnail
我們將探索函式的定義和調用,這是程式設計中非常重要且強大的概念,它可以將大型程式切割成小的、可重複使用的函式。讓我們一起來了解吧!函式的定義、呼叫和返回值是學習函式的核心。
Thumbnail
我們探討了while迴圈的使用,不同於for迴圈,while迴圈以條件式判斷為基礎,而非限定重複次數。我們介紹了使用break語句強制結束迴圈,以及使用continue語句跳過特定程式碼並返回迴圈開頭,同時,我們提及了無窮迴圈的概念,強調了在迴圈中必須更改迴圈變數的值,以避免無窮迴圈的發生。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
OpenCV 支援讀取和保存 TIFF(Tagged Image File Format)檔案,但對於合併多張圖片成為多頁的 TIFF 檔案,OpenCV 沒有的這功能。 可以使用 Pillow 庫(Python Imaging Library, PIL 的分支)來實現。
RPG Battle Game 說明文件 簡介 這是一個簡單的回合制 RPG 遊戲,玩家與怪物進行戰鬥,雙方有不同的技能可以使用。遊戲目標是擊敗對手,將其生命值削減至零。 程式架構 1. Character 類別 Character 是一個基礎類別,表示遊戲中的角色,包括玩家和怪物。所有角
Thumbnail
本文將展示使用不同激活函數(ReLU 和 Sigmoid)的效果。 一個簡單的多層感知器(MLP)模型來對 Fashion-MNIST 資料集進行分類。 函數定義 Sigmoid 函數 Sigmoid 函數將輸入壓縮到 0到 1 之間: 特性: 輸出範圍是 (0,1)(0, 1)(0,1
Thumbnail
呈上次使用logging來撰寫日誌,利用類別包裝的方式,可實現多個日誌紀錄器,但發現這樣就失去它原先,可以回傳是誰呼叫他並記錄行數的功能。 [Python]使用logging創建兩個以上的日誌紀錄 若開啟函式名稱、行數及訊息的功能,就會像這樣,幾乎都是記錄到,我定義中類別的函式
多型性(polymorphism)是物件導向中的一個重要概念,它指的是同一個方法或函式在不同的物件類別中可以有不同的行為。在 Python 中,多型性通常是通過繼承和方法重寫(method overriding)來實現的。 主要是為了不同資料類型的實體提供統一的介面,我們藉由下面的程式範例來多理解
Thumbnail
最近在調整跟優化效能時,又來複習了 Multi-threading 和 Multiprocessing 的概念,在面對大數據時,能夠有效利用多核心處理器的能力,對於提升程式執行效能至關重要。 Python 提供多線程(Multi-threading) 和多進程 (Multiprocessing)
Thumbnail
一早看著IThome的新聞發現到這個標題「📢 PyPI新帳號現需要啟用雙因素驗證才能執行管理操作」, 而近期幾乎都在接觸Python語言, 在Python的生態圈裡相信對於「pip install…」應該相當熟悉了吧! 但對於背後的平台相信我們不曾仔細去了解一番, 這好藉著這次的觀點也順便來介紹一
Thumbnail
我們將探索函式的定義和調用,這是程式設計中非常重要且強大的概念,它可以將大型程式切割成小的、可重複使用的函式。讓我們一起來了解吧!函式的定義、呼叫和返回值是學習函式的核心。
Thumbnail
我們探討了while迴圈的使用,不同於for迴圈,while迴圈以條件式判斷為基礎,而非限定重複次數。我們介紹了使用break語句強制結束迴圈,以及使用continue語句跳過特定程式碼並返回迴圈開頭,同時,我們提及了無窮迴圈的概念,強調了在迴圈中必須更改迴圈變數的值,以避免無窮迴圈的發生。