Showing posts with label portable python. Show all posts
Showing posts with label portable python. Show all posts

Wednesday, March 13, 2019

SciTE 設定

SciTE 在可攜程式系統中扮演很重要的角色, 可以用來解譯 Python 與 Lua, 並且透過 Tiny C 編譯器的特殊功能, 能夠進行類解譯的 ANSI C 程式執行.

此外, start.bat 中的

set PYTHONIOENCODING="utf-8"

讓 Python 程式解譯時, 不會將輸入以 Windows 10 的中文編碼 (Big-5) 讓 UTF-8 中文成為亂碼, 隨後, KMOL 在使用 ungit 執行特定 Git 倉儲各版本內容資料檢視時, 希望以 SciTE 開啟的檔案能夠及時配合顯示目前的內容版本, 就必須透過 Options 中的 Open Global Options File, 啟用

load.on.activate=1 

並且若希望在編輯 Python 程式時, 將 tab 視為 4 個 spaces 的縮排, 則需修改 Indentation 中原定為 8 個 Spaces 設定的 tabsize 與 indent.size, 設為一般 Python 程式建議的 4 個 Spaces 縮排. 並且不要使用 tab 符號.

tabsize=4
indent.size=4
use.tabs=0

Sunday, March 3, 2019

在 MSYS2 環境編譯 Solvespace

 以下引用一篇位於 http://project.mde.tw/blog/zai-msys2-huan-jing-bian-yi-solvespace.html 的舊文章.

能夠自行利用隨身碟上的 MSYS2 在 Windows 10 64 位元環境中編譯 https://github.com/solvespace/solvespace, 所代表的意義是, "假如"我們有能力看懂這個小型的參數式 2D/3D 電腦輔助繪圖系統的製作原理, 之後就可以客製化修改此一系統, 加入所要延伸的功能.

只是, 經過四百多天之後, 以下的編譯流程, 還能套用在最新的程式碼嗎?

"假如" 基本的參數式零組件建構軟體已經可以從使用者進階到陽春開發者, 那麼 https://github.com/Range-Software/range3 是否也能夠用類似的流程進行編譯與修改或延伸?

一旦, 協同產品開發者, 擁有最最基本可隨身的 CAD 與 CAE 套件之後, 就終於可以再結合 V-rep, 進行所謂創新產品的開發了嗎?




接下來, "假如"上述彈珠台的每一個立柱, 都裝上感測器, 且被彈珠碰撞後分別代表得分或扣分, "假如" 協同產品設計團隊能夠讓一套所謂具有學習或人工智慧的程式來發球, "它" 有機會可以越學越精準透過發球, 每次都取得彈珠檯遊戲的最高分嗎?

2017.12.25

在 MSYS2 環境編譯 Solvespace 


先前必須在 Ubuntu 或 Windows Visual Studio 環境中, 才能夠編譯 Windows 環境中的 Solvespace 執行檔情況, 在 2014 年 MSYS2 推出之後, 有了截然不同的改變.

以 MSYS2 建立 Windows 執行程式

MPV 首先發布在 Windows 環境中採用 MSYS2 執行原生編譯, 但是將所依賴的程式庫安裝在 MSYS2 環境中的方法, 並不適用於 Solvespace.

以 MSYS2 建立 solvespace.exe

在視窗環境, 利用 MSYS2 編譯 Solvespace, 目前已知可行方案為, 只採用 MSYS2 所提供的 gcc 編譯器與 mingw32-make 執行編譯及連結, 但前置處理 Solvespace 所需的 CMake, zlib 與 64 位元 d3dcompiler 程式, 都必須使用 Windows 原生版本. 而且從 Solvespace 下載原始程式後, 必須蓋掉 angle 中搜尋 d3dcompiler_43.dll, d3dcompiler_46.dll 與 d3dcompiler_47.dll 動態連結程式庫的設定.
至於以 CMake 及 mingw32-make 編譯連結得到的 zlib 程式庫, 則必須放入 MSYS2 系統 lib 目錄中, 如此, 一旦在 build 目錄中完成
1
2
cmake .. -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
mingw32-make
之後, 就可以結合 solvespace.exe, d3dcompiler_43.dll 與 libwinpthread-1.dll, 在 Windows 10 64 位元的環境中啟動執行.

Solvespack 倉儲

根據上述配置所完成的 Solvespace, 專供 KMOLab 程式開發使用, 倉儲位於 Solvespack.

參考資料

下載 kmol_2019.7z

下載 nodejs_with_ungit.7z

p37_adv.7z (下載 5GB, 解開 15 GB)

Qt.7z (下載 8GB, 解開 21 GB)

Solvespace_kmol_2019.7z (100MB)

編譯 Solvespace 流程:

git clone --recursive  https://github.com/solvespace/solvespace

cd solvespace

mkdir build

cd build

cmake .. -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release

mingw32-make

cd bin

solvespace.exe

listdlls64 solvespace.exe

複製執行 Solvespace.exe 所需 dll 或設法將程式庫與 exe 綁定


Friday, February 22, 2019

建立 Windows 10 64 位元可攜程式系統




安裝複製與移除 Python 3.7.2 

從 https://www.python.org/ 官方網站下載 Python 3.7.2 Windows 64 位元安裝檔案, 即 Windows x86-64 executable installer

選擇安裝到 C:\p37 後, 將 p37 目錄複製到 C:\tmp\cd2019\data 目錄中.

之後將系統中的 C:\p37 以解除安裝移除. 解除安裝可以使用 開始 -> 設定 -> 應用程式 選擇將 Python 相關安裝系統移除. 或以 搜尋->control 帶出舊版的控制台後, 以 程式集 -> 解除安裝程式 移除所安裝的 Python 相關套件.

修改 pip.exe 中的 c:\p37\python.exe 設定

由於透過系統安裝的 C:\p37\Scripts\pip.exe 將 python.exe 所在目錄直接寫入二位元檔案中, 必須使用 HxD: https://mh-nexus.de/en/hxd/ 編輯, 改為可攜設定中的 y:\p37\python.exe

基本啟動與關閉批次檔案

為了讓每次隨身碟插入後, 取得任何磁碟代號都不影響可攜隨身系統的啟動設定, 準備以 subst 指令, 將存放可攜檔案的 data 目錄與 y 槽代號對應. 希望了解 subst 指令的用法, 可以在命令提示字元區輸入 subst /?

基本啟動批次檔案除了利用 @echo off 關閉指令執行時的回應外, 主要是設定磁碟代號與 data 目錄對應, 然後宣告 Python 所在路徑, 並且利用 path 設定指令搜尋路徑, 其中包含 y:\;y:\p37;y:\p37\Scripts 等, 表示隨後的指令將會放在所設定的目錄路徑中.

以 SciTE 作為文字與程式編輯器

從 https://www.scintilla.org/SciTE.html 可以下載最新版的 SciTE 編輯器, 下載解開壓縮即可執行.

在此, SciTE 除了可以編輯文字檔案與程式外, 也可設定用來執行 Python, ANSI C 與 Lua 程式.

start.bat

@echo off
set Disk=y
subst %Disk%: "data"

%Disk%:

set HomePath=%Disk%:\home
set HomeDrive=%Disk%:\home
set Home=%Disk%:\home

set PYTHONPATH=%Disk%:\p37\DLLs;%Disk%:\p37\Lib;%Disk%:\p37\Lib\site-packages;
set PYTHONHOME=%Disk%:\p37

path=%path%;%Disk%:;%Disk%:\p37;%Disk%:\p37\Scripts;%Disk%:\tcc;

start /MIN %Disk%:\wscite\SciTE.exe
start /MIN %Disk%:\wscite\SciTE.exe

start /MIN cmd.exe
start /MIN cmd.exe

Exit


stop.bat
@echo off
set Disk=y
path=%PATH%;
REM 終止虛擬硬碟與目錄的對應
subst %Disk%: /D

taskkill /IM SciTE.exe /F
REM 關閉 cmd 指令視窗
taskkill /IM cmd.exe /F
EXIT


SciTEGlobal.properties

# Unicode
code.page=65001


cpp.properties

ccopts=-pedantic -Os
#cc=g++ $(ccopts) -c $(FileNameExt) -o $(FileName).o
#ccc=gcc $(ccopts) -c $(FileNameExt) -o $(FileName).o
cc=y:\tcc\tcc.exe -run
ccc=y:\tcc\tcc.exe -run

make.command=make
command.compile.*.c=$(ccc) -std=c99
command.build.*.c=$(make.command)
command.build.*.h=$(make.command)
command.clean.*.c=$(make.command) clean
command.clean.*.h=$(make.command) clean
command.go.*.c=$(cc) $(FileNameExt)
#command.go.*.c=./$(FileName)


python.properties

if PLAT_WIN
 command.go.*.py=y:\p37\pythonw -u "$(FileNameExt)"


參考資料

https://www.toptal.com/c/after-all-these-years-the-world-is-still-powered-by-c-programming

cdb w1 所完成的版本.7z

cdb w4 版本.7z +  nodejs_with_ungit.7z, (ungit 設定說明)

cdb_w5 版本.7z (470 MB, 解開後 1.3 GB, wcm 與 cd 課程共用版本)

Fossil SCM 簡介, Fossil SCM 編譯, , 

NX12

NX 12 Help https://docs.plm.automation.siemens.com/tdoc/nx/12/nx_help Python related https://docs.plm.automation.siemens.com/tdoc/nx/...