近期需要在一些系統配置相對較低的windows平台上處理Excel電子表格資料,由于各台電腦軟硬配置不一和Office/WPS安裝設定也有不同,尤其是WPS平台大多數都沒有安裝VBA運作環境,每次在一台新電腦上解決一個資料整理問題,都要先為準備資料處理分環境浪費很多時間,一些環境禁網禁U、孑然光軀(驅),更是令人一頭包。想到python處理excel資料處理的便捷,遂動念搞一個全場景python“移動版PYTHON”。
首先問度娘有沒現成的portable python,然後參考衆多前賢的文章文章,簡單整理一下自已建構過程。
一、有一個專門的網http://portablepython.com/,需要多版本運作環境的可以參考。
二、下載下傳"嵌入版python",這是一個包含基本功能的python最小安裝包。我下載下傳的3.7.4版隻有6.5M,解壓縮隻有12M左右,非常适合用于“即插即用”應用環境。位址:https://www.python.org/downloads/windows/,建議安裝32版,如果要向windows xp相容,則版本不能是3.5以上。
三、在硬碟上建立一個單獨的檔案夾,比如D盤根目錄下"D:\ppy",将下載下傳的python-3.7.4-embed-win32.zip(可以是其他版本的embed版),拷貝到該目錄,然後解壓縮。這樣目前目錄就有了python最小功能集的可運作版本。
四、建立運作環境。在d:\ppy目錄下建立一個批處理檔案,如:ppy.bat,内容如下:
@echo off
set path=%path%;%~dp0;%~dp0Scripts
echo Current Env: %~dp0
python --version
windows控制台視窗下,運作這個ppy.bat,一個最小的python已經可以運作。
五、這個embed版本裡并沒有pip,是以,我們得在這個embed版本裡內建pip。從下列網址下載下傳https://bootstrap.pypa.io/get-pip.py,并将這個get-pip.py複制到d:\ppy,然後在前述打開的windows控制台中,運作下述指令安裝pip:
python get-pip.py
安裝完畢後在控制台中運作pip。咦,出錯了:
D:\ppy>pip
Traceback (most recent call last):
File "C:\obj\windows-release\37win32_Release\msi_python\zip_win32\runpy.py", l
ine 193, in _run_module_as_main
File "C:\obj\windows-release\37win32_Release\msi_python\zip_win32\runpy.py", l
ine 85, in _run_code
File "D:\ppy\Scripts\pip.exe\__main__.py", line 4, in <module>
ModuleNotFoundError: No module named 'pip'
問題出在embed版本裡的“python37._pth”這個檔案,沒有把“import site”語句前的注釋符号去掉。現在用notepad打開d:\ppy\python37._pth(具體看下載下傳的python版本),去掉import site前的注釋符号,結果如下:
python37.zip
.
# Uncomment to run site.main() automatically
import site
然後,再次運作pip,OK。
六、現在加入一些必須的支撐庫,比如numpy,pandas等等。建議用阿裡雲的像伺服器https://mirrors.aliyun.com/pypi/simple
python -m pip install pandas -i https://mirrors.aliyun.com/pypi/simple
建議建立一個批處理檔案,這樣以後在“即插即用”時,在不依賴本地系統環境的情況下,安裝自己需要的支援庫,比如我的ipip.bat
python -m pip install %1 -i https://mirrors.aliyun.com/pypi/simple
七、至此,我們內建pandas,numpy的"移動python"建立完成。系統實際大小133M,壓縮後125M,CD光牒和U盤都可以放下。實際上,我內建了jupyter在裡面,內建壓縮後大小360M,大了2倍,但是,可以用浏覽器做為前端,而且代碼結果直覺,有列于代碼編輯調試。