美思 [技術雜談] ActiveState 開發工具教學 (ActivePython 和 ActivePerl 皆適用)

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

ActiveState 是一家主打自由軟體的軟體公司,該公司最知名的產品就是 ActivePerl 和 ActivePython。由於 Windows 對 Perl、Python、Tcl 等高階直譯語言相對不友善,ActiveState 所推出的產品相當受到 Windows 程式設計者的歡迎。

前陣子 ActiveState 將旗下產品重新整合,推出了 ActiveState Platform 以及新的工具 State Tool。本文帶著大家看一看這個新平台及新工具,讀者可以思考是否要將這個平台加入自己的工作流程。

ActivePerl 和 ActivePython 和其他程式語言

ActiveState 提供以下高階語言的免費和商業服務:

  • ActivePerl
  • ActivePython
  • ActiveTcl
  • ActiveGo
  • ActiveRuby (beta 版)

在筆者撰文的時候,前三個語言有整合進 ActiveState Platform,其他的仍然是獨立下載。

本來 ActiveState 還要推出 ActiveNode (即 Node.js) 和 ActiveLua,但現在在官網沒有看到下載頁面。原本的 beta 版頁面也拿掉了,看來短期內應該不會推出。對於單一公司來說,要維護那麼多語言還蠻累的,還不如集中火力在幾個主力產品比較好。

Komodo IDE

Komodo IDE 是 ActiveState 所推出的多語言 IDE,支援 Perl、Python、Ruby、Golang、JavaScript 等。原本 Komodo IDE 不便宜,現在也是免費的,只要登入 ActiveState Platform 的後台就可以免費下載該 IDE。

客製化運行環境

ActiveState Platform 是 ActiveState 所推出的新服務。程式設計者可以利用這個平台打包自己的開發環境,像是指定 Python 版本 + 選擇特定套件。ActiveState Platform 會將程式設計者打包好的開發環境做成安裝程式,日後就可以快速重建環境。

這個功能對團隊比較有用,對個人開發者的效益就沒那麼大。此外,免費使用時只能用這個開發環境在本地端寫程式,要將開發環境部署到伺服器上要另外收費,詳見後文說明。

使用 State Tool 管理開發環境

State Tool 用來管理開發環境。藉由這個工具,可在不同開發環境間快速切換。每個開發環境間是各自獨立的。像是在 Python 2 及 Python 3 間轉換就很簡單。

安裝 State Tool

請開啟具有系統管理員權限的 PowerShell 終端機,輸入以下指令即可安裝 State Tool:

PS1 > powershell "IEX(New-Object Net.WebClient).downloadString('https://platform.activestate.com/dl/cli/install.ps1')"

檢視系統上的 Project

使用以下指令觀看系統上存在的開發環境:

> state projects

在 ActiveState 的觀念裡,不同開發環境即為不同 project。程式設計者可以自己建立所需的 project,不一定只用 ActiveState 現成的。

安裝新 Project

輸入 state activate 指令即可進入特定開發環境。像是以下指令進入 Perl 5.32 版:

> state activate ActiveState/Perl-5.32
╔════════════════════════════════╗
║ Activating Virtual Environment ║
╚════════════════════════════════╝

Choose Destination
Where would you like to place the project files for ActiveState/Perl-5.32?

> C:\Users\user\ActiveState\Perl-5.32
  Other ..

State Tool 會詢問是否要設成預設 project,之後開終端機就可以直接使用:

Default Project
Would you like to make ActiveState/Perl-5.32 your default project?
This will allow you to operate on your project and run executables provided by its runtime without first "activating" i
t.
 (y/N)

這可以之後再設置,不需要馬上決定。

離開目前的 Project

State Tool 沒有提供額外的指令,使用系統的 exit 指令即可離開目前的開發環境:

> exit

設置預設 Project

對於常用的開發環境,可以設成預設 project,這樣一開終端機就可以使用,而且該 project 會變成全域指令:

> state activate --default ActiveState/Perl-5.32

搜尋套件

使用 state search 指令可在開發環境中搜尋套件:

> state search Moo

也就是說,State Tool 兼具套件管理程式的功能。由於在 Windows 上編譯延伸套件較為困難,這個功能算是蠻好用的。

檢視套件資訊

使用 state info 指令可觀看套件的資訊:

> state info Moo

安裝套件

使用 state install 指令可安裝套件:

> state install Moo

移除套件

使用 state uninstall 指令可移除套件:

> state uninstall Moo

移除 State Tool

不論為了什麼原因,不想再用 State Tool 了,可以輸入以下指令把整個 State Tool 和安裝的開發環境皆移除:

> state clean uninstall

ActiveState 最近的新產品

在筆者撰文的時候,ActiveState 推出兩個新產品,帶大家來看一下。

ActivePerl 5.32

Perl 即將邁入新的大版本號 Perl 7。而 Perl 7 會以 Perl 5.32 版為基礎去修改。所以,要將手邊的 Perl 程式遷移到 Perl 7 前,應先在 Perl 5.32 測試相容性。

ActiveState 官網中有關 Perl 5.32 的說明在這裡。有興趣的讀者可以自己看一下。

輸入以下指令即可安裝 Perl 5.32:

> state activate ActiveState/Perl-5.32

Anaconda 替代包

Anaconda 是相當受歡迎的 Python 發行版,主打資料科學相關的應用和整合多個開發工具 (像 Jupyter)。目前來說,應該是 Anaconda 比 ActivePython 受歡迎。

ActiveState 當然知道競爭對手的存在,所以推出了相當於 Anaconda 的開發環境。相關說明在這裡。有興趣的讀者可以自己看一下。

輸入以下指令即可安裝等效於 Anaconda 的 Python 開發環境:

> state activate ActiveState/ActivePython-for-Anaconda-Win

不過,這個開發環境只有整合資料科學套件的部分。開發工具的部分還是要自己安裝。此外,這不是 Ananconda 發行版,不會有 conda 指令可用,而是用 ActiveState 的 state 指令來管理 Python 套件。

ActiveState 的營運模式

除了免費服務外,ActiveState 有許多付費服務,像是:

  • 建立私有的 project (開發環境)
  • 將 project 部署到生產環境上,按節點數量收費
  • 將多位開發者加入團隊,按使用人數收費
  • 安裝舊版的開發環境
  • Python 2 的延長維護

若有需要這些服務,請自行向 ActiveState 購買。站長完全沒有抽成,單純介紹相關服務。

關於作者

身為資訊領域碩士,美思認為開發應用程式的目的是為社會帶來價值。如果在這個過程中該軟體能成為永續經營的項目,那就是開發者和使用者雙贏的局面。

美思喜歡用開源技術來解決各式各樣的問題,但必要時對專有技術也不排斥。閒暇之餘,美思將所學寫成文章,放在這個網站上和大家分享。