2016-01-27

Python打包成執行檔(Python 3.5 | PyInstaller 3.1)

06:52 Posted by ZMH , 6 comments

Python 3.5 嘗試 PyInstaller 3.1

Introduction

Python是個很方便的語言,但是當你需要將程式分享給他人使用時,這種script language需要安裝相對應的直譯器和環境,大幅降低檔案分享的容易程度,因此我們能藉由一些第三方軟體來將python的程式碼打包成Windows、Linux或Mac可以執行的執行檔(ex: exe..)

目前我知道能打包python的工具有py2exe、pyinstaller、cx-freeze

雖然py2exe很小巧方便,但似乎不支援python3.5
所以本篇嘗試使用 pyinstaller!

安裝(在command line下指令)

安裝指令(若不清楚pip可看這篇)
pip install pyinstaller
或是更新
pip install --upgrade pyinstaller

使用方式

這套件功能很強大,官方檔案
pyinstaller [options] script [script ...] | specfile
不加任何參數,即可將檔案打包成一個資料夾(包含執行檔+引入的函式庫)
pyinstaller myscript.py
若要將整個資料夾打包成一個執行檔
pyinstaller -F myscript.py
其他功能未來介紹,或請參閱官方檔案

問題

  1. 若產生"failed to create process."
    目前推測可能有些bug導致無法解析含空格的檔案路徑(EX:預設的Python 3.5即有空格),因此可以選擇把python裝在沒有含空格的路徑,重新install所以相關檔案。
    或是:
    cd /path.../python 3.5/Scripts
    python pyinstaller-script.py path/YourScript.py

在網頁裡放程式碼(SyntaxHighlighter)

前言:

這篇教學利用SyntaxHighlighter使得網頁能呈現經過處理的程式碼(易於閱讀)。內容主要來自官方說明文件

基本步驟:

  1. 在網頁內引入 shCore.jsshThemeDefault.css和 shCore.css
  2. 加入你所寫程式對應的"brushes",這裡有所有的brushes
    (舉例, shBrushJScript.js 用於 JavaScript)
  3. 有兩種方式: <pre /> 或 <script /> (請見下面範例)
  4. 呼叫 SyntaxHighlighter.all() JavaScript 語法即生成

範例:

  1. 在網頁<head>與</head>之間引入:
    
    
    
    
    
     
    
    
  2. 在<pre> </pre>之間打入想要的程式,並指定class="brush: js"(這邊用javascript舉例)
        /**
         * SyntaxHighlighter
         */
        function foo()
        {
            if (counter <= 10)
                return;
            // it works!
        }
    

<pre /> 或 <script />差異:

...建構中