python 便携化方法

2020-10-31  本文已影响0人  ieew

python 便携化

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

事先准备

以上两个版本的 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 已经制作完毕了,下面是使用方法

使用方法与注意事项:

图示九

不使用 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文件所在路径"))
上一篇下一篇

猜你喜欢

热点阅读