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.pydselect.pydunicodedata.pydwinsound.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文件所在路径"))








网友评论