1. 程式人生 > 其它 >Python3 虛擬環境遷移複製一鍵指令碼 on Windows

Python3 虛擬環境遷移複製一鍵指令碼 on Windows

核心思路

首先,對方電腦上需要已經配置好 Python 環境變數,可以直接使用 python 指令執行,而虛擬環境之間相差的只有 Python 版本構建出來的虛擬環境。
因此,可以寫出一個一鍵將當前目錄構建成虛擬環境的指令碼。

筆者在 Windows 系統上使用 Python,因此為了向下相容,使用了 bat 檔案作為指令碼語言。

準備工作

為了開箱即用,可以把 python 包先儲存下來。
以下命令會進入虛擬環境,生成包列表,然後使用 pip 下載到 whls 資料夾下。

@echo off

:: 進入虛擬環境
call .\venv\Scripts\activate.bat

:: 生成requirements.txt
pip freeze > requirements.txt

:: 獲取whls檔案
mkdir whls
cd whls
pip download -r ..\requirements.txt

遷移工作

然後,將你的原始碼檔案和 whls 資料夾打包即可。

在另外一個電腦上,再次建立虛擬環境並安裝我們已經準備好的包,指令碼如下。

@echo off
:: 作者:ZHider

:: 判斷python大版本>=3.4
echo 1. Judging Python version...
FOR /F "tokens=2,3* delims=. " %%i in ('python --version') do (
    IF NOT %%i GEQ 3 (
        echo Python3 not detected!
        pause
        goto eof
    )
    IF %%j LSS 4 (
        echo Python3 version less than 3.4!
        pause
        goto eof
    )
)

:: 建立虛擬環境
echo 2. Creating Python virtual environment...
python -m venv venv

:: 進入虛擬環境
echo 3. Activate virtual environment...
call .\venv\Scripts\activate.bat

:: 安裝模組
echo 4. Installing pip modules...
pip install --no-index --find-links=.\whls -r .\requirements.txt

:: 執行命令
set curd=%~dp0%
echo.
echo %curd:~0,-1%^>python eims_arg.py -h
python eims_arg.py -h

echo.
call cmd

:eof

在判斷 Python 版本時,你可以定義自己的任何條件,修改一下即可。
最後的執行命令部分可以是任何命令,此處使用了程式的幫助命令,檢視程式是否正常執行。

筆者花了一晚上學習了一下 bat 批處理命令的使用方法,若有不足,請多指教。