升級為 Python 3.7.1 (What's New in Python 3.7.1)
內含 Heroku cli 版本 7.18.9 (啟動可攜系統後, 以 heroku --version 查詢版次, 以 heroku login 登入系統, 以 heroku logs 查詢啟動紀錄)
內含 Eric6 IDE 18.11
內含 V-rep 3.5.0 rev4
內含 Fossil SCM Verion 2.7
上述從 Python 3.7.0 更新到 Python 3.7.1 是將安裝在 c:\python37 目錄下的系統安裝檔案, 直接覆蓋 Python 3.7.0 可攜版本.
但因 Scripts/pip.exe 與 pip3.7.exe 與 pip3.exe 會將 c:\python37 直接寫入這三個 .exe 檔案, 導致直接執行 pip 時, 會因為找不到 c:\python37\python.exe 而無法執行, 必須使用 python -m pip 才能執行.
修改方式為使用 https://mh-nexus.de/en/hxd/ , 在二位元模式下編輯這三個 .exe 檔案, 將 c:\python37 換為 y:\p37 即可.
可攜 HxD.7z
在 Windows 10 建立 Python 可攜系統的目的, 在於讓使用者可以自行攜帶與系統設定相關的檔案, 以及自行攜帶系統所安裝的 Python 特定模組, 讓使用者能將隨身系統放入隨身碟或隨身硬碟, 在任何 Windows 10 64 位元操作系統中使用.
建立可攜系統的步驟如下:
@echo off REM 設定 y 硬碟代號與 data 目錄對應 set Disk=y subst %Disk%: "data" REM 設定 leo 相關對應 Home 位置 set HomePath=%Disk%:\home set HomeDrive=%Disk%:\home set Home=%Disk%:\home REM 將系統 Python 程式的 io 設為 utf-8 set PYTHONIOENCODING="utf-8" REM 將後續的指令執行, 以 %Disk% 為主 %Disk%: REM 設定 PYTHONPATH set PYTHONPATH=%Disk%:\p37\DLLs;%Disk%:\p37\Lib;%Disk%:\p37\Lib\site-packages; set PYTHONHOME=%Disk%:\p37 REM for Qt and Qt Creator set LLVM_INSTALL_DIR=%Disk%:\LLVM; set QBS_INSTALL_DIR=%Disk%:\qbs-windows-x86_64-1.10.0; REM for TCL set TCL_LIBRARY=%Disk%:\p37\tcl\tcl8.6 set TK_LIBRARY=%Disk%:\p37\tcl\tcl8.6 REM 設定 Leo 所用的編輯器 set LEO_EDITOR=%Disk%:\scite\bin\Sc1.exe; set BOOST_ROOT=%Disk%:\boost_1_66_0\; REM set CMAKE_PREFIX_PATH=%Disk%:\msys64\mingw64\ REM for fossil https 連線設定 REM 若在近端使用 fossil ui 則要蓋掉 REM set HTTPS=on REM 指令搜尋路徑設定 REM set path1=%PATH%;%Disk%:;%Disk%:\p37;%Disk%:\git\bin;%Disk%:\stunnel\bin;%Disk%:\sqlite-tools;%Disk%:\p37\Scripts;%Disk%:\Git\bin;%Disk%:\vrep331; REM path1 is base of this portable Python3.6 system set path1=%Disk%:;%Disk%:\p37;%Disk%:\git\bin;%Disk%:\stunnel\bin;%Disk%:\sqlite-tools;%Disk%:\p37\Scripts;%Disk%:\Git\bin;%Disk%:\vrep331;%Disk%:\p37\Lib\site-packages\PyQt5\Qt\bin; REM path2 is for pandoc and miktex set path2=%Disk%:\pandoc-2.0.2;%Disk%:\miktex_portable\texmfs\install\miktex\bin;%Disk%:\lua-5.3.4\bin;%Disk%:\coreutils-5.3.0\bin;%Disk%:\qtcreator-4.7.0-rc1\bin;%Disk%:\patch-2.5.9-7-bin\bin; REM path3 is for gcc development set path3=%Disk%:\msys64\mingw64\bin;%Disk%:\swigwin-3.0.12;%Disk%:\cmake-3.10.1-win64-x64\bin;%Disk%:\diffutils-2.8.7-1\bin;%Disk%:\patch-2.5.9-7\bin;%Disk%:\graphviz-2.38\bin; set path4=%Disk%:\boost_1_66_0\;%Disk%:\Strawberry\perl\bin;%D%:\jom_1_1_2;%Disk%:\LLVM\bin;%Disk%:\QtCreator\bin;%Disk%:\vrep340_rev1;%Disk%:\p37\tcl\tcl8.6;%Disk%:\xsltproc; set path5=%Disk%:\ffmpeg-20180504-dc7a8f7-win64-static\bin;%Disk%:\oce-0.18.1\bin\;%Disk%:\oce-0.18.1\lib\;%Disk%:\gnuplot\bin; set JAVA_HOME=%Disk%:\Java\jdk1.8.0_172; set ANDROID_HOME=%Disk%:\Android\sdk; set path6=%Disk%:\Java\jdk1.8.0_172\bin;%Disk%:\Java\jre1.8.0_172\bin;%Disk%:\Android\AndroidStudio\bin;%Disk%:\Android\sdk\tools;%Disk%:\Android\sdk\platform-tools;%Disk%:\BIND9.12.2-P2.x64; REM for Pythonocc under MSYS2 according to https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/pythonocc/z-NI9A-Vyic/8QjD81q-AwAJ set CSF_GraphicShr=%Disk%:\oce-0.18.1\bin\TKOpenGl.dll path=%path%;%path1%;%path2%;%path3%;%path4%;%path5%;%path6%; start /MIN %Disk%:\scite\bin\Sc1.exe start /MIN %Disk%:\scite\bin\Sc1.exe start /MIN cmd.exe start /MIN cmd.exe REM start /MIN cmd.exe /k "y:\cp2018.bat" REM start /MIN cmd.exe /k "y:\cp2018_http_server.bat REM start /MIN cmd.exe /k "y:\cadp2018.bat" REM 啟動 Leo 編輯器 %Disk%:\p37\python.exe %Disk%:\launchLeo.py REM 啟動 stunnel REM start /MIN fossil.exe server -P 127.0.0.1:8080 %Disk%:\tmp\fossil_repo REM start /MIN stunnel.exe REM start qtcreator Exit
@echo off set Disk=y REM 關閉 SciTE taskkill /IM Sc1.exe /F REM 關閉 python taskkill /IM python.exe /F taskkill /IM pythonw.exe /F REM 關閉 stunnel taskkill /IM stunnel.exe /F REM 關閉 fossil taskkill /IM fossil.exe /F rem taskkill /IM sharex.exe /F REM 清除 log 資料 path=%PATH%; REM del /Q /F V:\tmp\*.* REM 終止虛擬硬碟與目錄的對應 subst %Disk%: /D REM 關閉 cmd 指令視窗 taskkill /IM cmd.exe /F REM taskkill /IM mingw32 /F EXIT