python 便携化
本教程所有截图都以 Python 3.8.5
为范例
事先准备
- 安装版
python
-
zip
版python
- 一个存放便携版
python
的文件夹(文件夹名建议叫python
并且以后不建议修改),教程后续将称之为%python_path%
- 一个后缀名为
bat
的文本文件 - 十六进制修改器 ( 没有现成的也可以下载我提供的这个 ) 密码: 3zij
以上两个版本的 python
都可以从 该地址 获得

教程开始
步骤一:
- 安装安装版的
python
- 打开
我的电脑
在地址栏中输入%appdata%\..\Local\Programs\Python
并回车 图示一 - 复制这个文件夹,粘贴到
%python_path%
中,如 图示二 - 这时候我们安装的 安装版 python 已经没用了,你可以直接卸载它。注: 你可能需要同时卸载两个 如 图示零



步骤二:
- 用压缩软件打开
zip
版python
的压缩包 - 从中提取4个文件,它们的名字分别如下↓ 如 图示三
pyexpat.pyd
select.pyd
unicodedata.pyd
winsound.pyd
- 这里,你有两个选择,选择其一操作即可:
- 将这四个
pyd
文件全部都直接复制到%python_path%\python38\lib
中 (分的有点散,就不放图示了) - 将这四个文件直接压缩为一个zip压缩文件,然后将压缩文件更名为
python38.zip
如 图示四
- 将这四个
- 现在,
zip
版的python
已经没有用了,你可以直接将它删除即可


步骤三:
说明:这时候,我们的便携版python
其实已经成型了,但是为了方便使用,所以我们还需要做一些后续的准备,因此有了步骤三
-
把我们准备好的那个后缀名为
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
文件,如有增加都需要按 本小节 步骤6 的提示修改和保存。而后就可以在命令行使用的时候前面不加python -m
了 如 原pyinstaller
命令为python -m PyInstaller xxx
修改过pyinstall.exe
后命令为pyinstaller xxx




结尾与使用方法
教程到了这里,就已经说明我们的 便携版 python
已经制作完毕了,下面是使用方法
使用方法与注意事项:
-
用你的鼠标双击
python_path.bat
文件,在这个弹出的窗口中使用python
即可 -
如果你没有修改
%python_path%\Python38\Scripts
下的.exe
文件的话,安装模块不能使用pip install xxxx
来安装,应该使用python -m pip install xxxx
来安装,其他的如pyinstaller
模块同理 如 图示八(安装pyinstaller
)这里有一点特别需要注意的地方:
python -m 模块名 参数
中模块名
是大小写敏感的,如pyinstaller
, 如果使用python -m pyinstaller xxxx
绝对报找不到模块,你应该使用python -m PyInstaller
才能正常使用。如果你正确修改了%python_path%\Python38\Scripts
下的.exe
就不需要这么麻烦了,直接用pyinstaller xxxx
就可以了 -
如果你已经修改了
%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文件所在路径"))
网友评论