Skip to content

Instantly share code, notes, and snippets.

@holishing
Last active July 13, 2019 03:30
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save holishing/2415e585d6c2fd6de01f7e9118cce692 to your computer and use it in GitHub Desktop.
Save holishing/2415e585d6c2fd6de01f7e9118cce692 to your computer and use it in GitHub Desktop.
在 Debian Buster 上測試 PyGMT (不依賴 Anaconda Python 3)

在 Debian Buster 上測試 PyGMT (不依賴 Anaconda Python 3)

前言

或許直接抓 experimental 的包來測試更快,但為了方便研究與修改,這邊還是用把它抓下來重建套件的方式,之後看 PyGMT 也能不能打包成 dpkg 套件包吧

步驟

  1. 建置 deb package 需要:
apt install fakeroot dpkg-dev build-essential \
            devscripts debhelper git # 用 root
                                     # 裝 git 主要是為了抓 salsa 的 git repo
  1. 然後先建立一個資料夾放原始碼以及之後建立的套件:
mkdir dpkggmt #之類你喜歡的名稱
cd dpkggmt
  1. 抓 salsa 上 Debian GIS Project 維護的 GMT Package:
git clone https://salsa.debian.org/debian-gis-team/gmt.git gmt-debian
## 另外取名以免跟官方 git repo 搞混
  1. 進去切到 experimental 分支
cd gmt-debian && git checkout experimental
  1. 利用 mk-build-deps 建立一個build套件時才要用到的虛擬套件 (之後移除應該會比較方便)
mk-build-deps debian/control
apt install --no-install-recommends ./gmt-build-deps_6.0.0~rc2+dfsg-1~exp2_all.deb # 用root
apt --fix-broken --no-install-recommends install # 用root
  1. 開始構建套件
debuild -b -rfakeroot -us -uc
  1. 然後安裝 gmt6
apt install ./gmt_6.0.0~rc2+dfsg-1~exp2_amd64.deb \
            ./libgmt6_6.0.0~rc2+dfsg-1~exp2_amd64.deb \
            ./gmt-common_6.0.0~rc2+dfsg-1~exp2_all.deb \
            ./gmt-doc_6.0.0~rc2+dfsg-1~exp2_all.deb \
            ./libgmt-dev_6.0.0~rc2+dfsg-1~exp2_amd64.deb
  1. 安裝 python3 (>=3.7,buster自帶的就夠了), virtualenv
apt install virtualenv
  1. 另外開一個資料夾叫做 pygmt
mkdir pygmt
  1. 建立 virtualenv 環境
virtualenv -p $(which python3) pygmt
  1. 進去資料夾後,並且先設定gmt library的環境變數後,啟動環境
cd pygmt
echo 'export GMT_LIBRARY_PATH="/lib/x86_64-linux-gnu"' >> bin/activate
source bin/activate   ## 要離開環境輸入 deactivate 確認即可
  1. 利用 virtualenv 的 pip 安裝 pygmt
pip insatll pygmt
  1. 修改最小需求版本 (work around)
"$EDITOR" lib/python3.7/site-packages/pygmt/clib/session.py

required_version = "6.0.0" 改成 required_version = "6.0.0rc2"

這方法很糟糕,不過想不到更漂亮的方法:p

  1. 啟用 python (python3) 測試
python
>>> import pygmt ## 如果沒有跳出錯誤訊息代表成功了

然後可以按照官網給的範本來進行測試: https://www.pygmt.org/dev/tutorials/first-figure.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment