[問題] 跨平台之間的執行檔案(Linux/Windows/MacOS..)

作者: jimmytzeng (jimmytseng)   2014-12-04 13:23:57
大家好
小弟有一個問題困擾滿久的,要說是小問題也可以,大問題也是
平常自己都是在Linux底下使用virtualenv 跟pip 進行python套件的管理
但是當我寫好的程式需要release給一個不會python的人甚至是一單位的人
因為對方所使用的電腦有的是windows,有些是MacOS, 甚至還有分x86/x64的
我的程式應該如何打包?
以我以前經驗都是
相依套件直接建立一個lib資料夾, 並使用pip install -r requirements.txt -t lib 將library加入至local 資料夾
並於程式初始化時,將local資料夾的lib加入是python library path.
打包完成後,release出去後
先請對方安裝python直譯器, 並把直譯器手動加入系統環境變數
請對方點擊.py執行
這種方法雖然是滿簡便的,不必考慮到使用者是使用那種電腦,直譯器會負責處理
但是這方法後來想一想不是很專業,甚至還有潛在的問題
因某些套件透過pypi安裝的時候, 會需要進行編譯(e.g: lxml , pyopenssl等)
若是對方單位每個人的電腦架構,使用作業系統都不一樣, 我要release出去的時候
就是需要使用各種不同架構的電腦打包程式,或者是安裝各種交叉編譯環境
似乎是各種不方便
不知道版上有沒有高手有類似的經驗
作者: COLDTURNIP (娶妻當娶五航戰)   2014-12-04 23:39:00
要跨到 win 上面是有 py2exe,但後來遇到類似需求的話,我可能從專案一開始就捨棄 py 了…
作者: NilPtr (神奇的空指標)   2014-12-08 21:28:00
也許能試試看用C/C++崁入Python像是Blender、LibreOffice都是自帶Python這樣就不用另外裝,不過這我個人是沒試過
作者: timTan (用口頭禪區分年記)   2014-12-11 08:11:00
別人也用pip -r 裝或是release 多個版本

Links booklink

Contact Us: admin [ a t ] ucptt.com