python 便攜化
本教程所有截圖都以 Python 3.8.5
為范例
事先準備
- 安裝版
python
-
zip
版python
- 一個存放便攜版
python
的文件夾(文件夾名建議叫python
并且以后不建議修改)愤惰,教程后續(xù)將稱之為%python_path%
- 一個后綴名為
bat
的文本文件 - 十六進制修改器 ( 沒有現(xiàn)成的也可以下載我提供的這個 ) 密碼: 3zij
以上兩個版本的 python
都可以從 該地址 獲得
教程開始
步驟一:
- 安裝安裝版的
python
- 打開
我的電腦
在地址欄中輸入%appdata%\..\Local\Programs\Python
并回車 圖示一 - 復制這個文件夾麸塞,粘貼到
%python_path%
中,如 圖示二 - 這時候我們安裝的 安裝版 python 已經(jīng)沒用了愧沟,你可以直接卸載它。注: 你可能需要同時卸載兩個 如 圖示零
步驟二:
- 用壓縮軟件打開
zip
版python
的壓縮包 - 從中提取4個文件羽圃,它們的名字分別如下↓ 如 圖示三
pyexpat.pyd
select.pyd
unicodedata.pyd
winsound.pyd
- 這里倔既,你有兩個選擇,選擇其一操作即可:
- 將這四個
pyd
文件全部都直接復制到%python_path%\python38\lib
中 (分的有點散褥影,就不放圖示了) - 將這四個文件直接壓縮為一個zip壓縮文件,然后將壓縮文件更名為
python38.zip
如 圖示四
- 將這四個
- 現(xiàn)在咏雌,
zip
版的python
已經(jīng)沒有用了凡怎,你可以直接將它刪除即可
步驟三:
說明:這時候,我們的便攜版python
其實已經(jīng)成型了赊抖,但是為了方便使用统倒,所以我們還需要做一些后續(xù)的準備,因此有了步驟三
把我們準備好的那個后綴名為
bat
的文件移動到%python_path%
中 如 圖示五-
用記事本打開這個準備好的
bat
文件,然后將以下文本復制到打開的記事本中并保存記事本@echo off if exist "%~dp0python.exe" set "PYTHON_PATH=%~dp0" if exist "%~dp0python\python.exe" set "PYTHON_PATH=%~dp0python" if exist "%~dp0python3\python.exe" set "PYTHON_PATH=%~dp0python3" if exist "%~dp0python38\python.exe" set "PYTHON_PATH=%~dp0python38" set "PATH=%PYTHON_PATH%;%PYTHON_PATH%\Scripts;%PYTHON_PATH%\DLLs;%PATH%" cmd
修改這個
bat
文件的名字為python_path.bat
-
請選擇本步驟下屬的任意一個選項操作氛雪,只需要按其中一個步驟來操作即可:
- 使用十六進制修改器打開位于
%python_path%\Python38\Scripts
下所有后綴名為.exe
的文件 如 圖示六 - 按照 圖示七 的提示逐個修改然后保存它們
- 使用十六進制修改器打開位于
- 在該 藍奏云, 密碼:ho4f 中下載分享的壓縮文件房匆,并將壓縮文件中的
exe
程序放置在%python_path%\Python38\Scripts
中 - 啟動
python_path.bat
并在其中 運行 剛剛放到%python_path%\Python38\Scripts
中的exe
程序 如 圖示八
- 在該 藍奏云, 密碼:ho4f 中下載分享的壓縮文件房匆,并將壓縮文件中的
以后為
python
安裝的所有的包都需要注意是否有在%python_path%\Python38\Scripts
下增加新的.exe
文件,如有增加都需要按 本小節(jié) 步驟6 的提示修改和保存报亩。而后就可以在命令行使用的時候前面不加python -m
了 如 原pyinstaller
命令為python -m PyInstaller xxx
修改過pyinstall.exe
后命令為pyinstaller xxx
結(jié)尾與使用方法
教程到了這里坛缕,就已經(jīng)說明我們的 便攜版 python
已經(jīng)制作完畢了,下面是使用方法
使用方法與注意事項:
用你的鼠標雙擊
python_path.bat
文件捆昏,在這個彈出的窗口中使用python
即可-
如果你沒有修改
%python_path%\Python38\Scripts
下的.exe
文件的話赚楚,安裝模塊不能使用pip install xxxx
來安裝,應(yīng)該使用python -m pip install xxxx
來安裝骗卜,其他的如pyinstaller
模塊同理 如 圖示八(安裝pyinstaller
)這里有一點特別需要注意的地方:
python -m 模塊名 參數(shù)
中模塊名
是大小寫敏感的宠页,如pyinstaller
, 如果使用python -m pyinstaller xxxx
絕對報找不到模塊,你應(yīng)該使用python -m PyInstaller
才能正常使用寇仓。如果你正確修改了%python_path%\Python38\Scripts
下的.exe
就不需要這么麻煩了举户,直接用pyinstaller xxxx
就可以了 如果你已經(jīng)修改了
%python_path%\Python38\Scripts
下的.exe
文件的話,則不需要像上一點那么麻煩遍烦,所有被修改過的.exe
文件都可以直接正常使用俭嘁,如pip
例:pip install xxxx
不使用 n++
修改 %python_path%\Python38\Scripts
python 要求:不低于python3.5
#!python.exe
def modify(files):
with open(files,"rb") as f:
data = f.read().hex()
exe_file = data[:211968]
txt_file = data[211968:].split("504b03041400000000")[0]
zip_file = f"504b03041400000000{data[211968:].split('504b03041400000000')[1]}"
hl = "".join([exe_file, "#!python.exe\n\n\n".encode().hex(), zip_file])
with open(files, "wb") as f:
f.write(bytes.fromhex(hl))
if __name__ == "__main__":
modify(input("要修改的exe文件所在路徑"))