python 便携化方法

python 便携化

本教程所有截图都以 Python 3.8.5 为范例

事先准备

  • 安装版 python
  • zippython
  • 一个存放便携版 python 的文件夹(文件夹名建议叫 python 并且以后不建议修改),教程后续将称之为 %python_path%
  • 一个后缀名为 bat 的文本文件
  • 十六进制修改器 ( 没有现成的也可以下载我提供的这个 ) 密码: 3zij

以上两个版本的 python 都可以从 该地址 获得

图示

教程开始

步骤一:

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

步骤二:

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

步骤三:

说明:这时候,我们的便携版python 其实已经成型了,但是为了方便使用,所以我们还需要做一些后续的准备,因此有了步骤三

  1. 把我们准备好的那个后缀名为 bat 的文件移动到 %python_path% 中 如 图示五

  2. 用记事本打开这个准备好的 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
    
  3. 修改这个 bat 文件的名字为 python_path.bat

  4. 请选择本步骤下属的任意一个选项操作,只需要按其中一个步骤来操作即可:

      1. 使用十六进制修改器打开位于%python_path%\Python38\Scripts 下所有后缀名为.exe 的文件 如 图示六
      2. 按照 图示七 的提示逐个修改然后保存它们
      1. 在该 蓝奏云, 密码:ho4f 中下载分享的压缩文件,并将压缩文件中的 exe 程序放置在 %python_path%\Python38\Scripts
      2. 启动 python_path.bat 并在其中 运行 刚刚放到 %python_path%\Python38\Scripts 中的 exe 程序 如 图示八
  5. 以后为 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文件所在路径"))

你可能感兴趣的:(python 便携化方法)