1. 程式人生 > 其它 >prettymaps安裝配置的探索之路

prettymaps安裝配置的探索之路

prettymaps

前幾天看到一篇微信推文,利用Python快速製作海報級地圖。不得不說,那個地圖真的好看,所以決定動手試一試,雖然說我還是一個只看過Python基本語法的小白,但是鑑於最近事情比較少,所以還是動手試了一下,就確實挺多坑,探索以後才明白。

推文連結

用Python快速製作海報級地圖

還有一篇其他人寫的關於配置的內容,我覺得也很有用。

Prettymaps,製作你的專屬地圖吧

還有一個配置過程中可能會用到的網站,比如通過上文中的方法安裝配置prettymaps。

原開發者GitHub工程映象網站

關於Git安裝

因為推文中的安裝方式就是利用git,所以我還是去嘗試下載安裝了一下Git。

git下載網址
開始下載了Setup的那一個,然後在看不懂如何選擇安裝資訊以後放棄安裝。然後去B站搜了一下安裝視訊,有一個直接下載Portable版本的,直接解壓就可以用,然後心動不如行動,就開始了繼續探索了。
(額外說一句,因為我裝了32位的python3.9,所以我裝了三十二位的Git,我猜應該是可以這樣對應的,很小聲)

不用Git安裝

上面的第二條推文中給出來了一種可以不用Git安裝的方法,就是在Github上下載了原始碼以後,解壓,利用setup.py檔案進行安裝,為了便於大家檢視,我把這篇推文的連結就附在下面,我還記得我解壓的時候會問我要不要覆蓋檔案,我也不知道要不要,但是感覺好像覆蓋了靠譜一點。

不用Git來安裝的方法

還有就是cmd的路徑,如果利用win+r的話,一般就需要更改路徑,改路徑如果跨盤,可能就比較麻煩了。比如從C盤跨到D盤,直接cd d:document 可能不會成功 還要在輸入一個 d:的命令才行,或者直接輸入cd /d d:(跨到E應該就是 cd /d e:)就行了

其他相關庫的安裝

作為一個初學者,對於python庫的安裝只知道pip install 不過安裝過程中還是遇到了好多困難,比如版本不匹配,安裝順序出問題等等。
首先是wheel,安裝時報錯提示缺少這個module,就直接pip install了。
然後好像是rtree,這個我當時應該是pip安裝失敗(但是是後來才發現),然後在某個神奇的網站上

神奇的網站,可以安裝許多非官方的python庫(好像是加州大學的域名) 下載了對應版本的rtree的whl檔案,然後利用pip安裝的。在網站裡利用索引查詢,或者直接ctrl+f,找到對應的庫,下載。比如我是32位的python3.9,就下載 Rtree-0.9.7-cp39-cp39-win32.whl (我猜的),然後到下載檔案的目錄下,利用命令列 pip install Rtree-0.9.7-cp39-cp39-win32.whl就行了。

安裝whl檔案方法

不過由於開始我沒有發現安裝錯誤,所以後來就出現了其他問題,後面繼續講。
還有就是GDAL和fiona庫,因為這兩個庫需要版本匹配才能正常安裝,所以我在這裡卡了好長時間。最後探索出來的比較合適的版本就是:

GDAL Fiona
3.3.2 1.8.20

然後當我興致勃勃的把程式碼複製過來準備執行的時候,又提示報錯了。

spatialindex_c-32.dll

執行以後一直提示這個報錯,然後我開始了百度大法。

OSError: could not find or load spatialindex_c-32.dll

不過百度到的結果魚龍混雜,出於對自己水平的清楚認知,我知道在core.py裡面改程式碼這種事情風險太大,所以我還是很果斷的看了其他的內容。發現好多人出現這個報錯是在安裝rtree的時候,於是我又重新安裝了一遍,似乎又報錯了,我又沒注意,然後再去執行程式碼還是會產生報錯。
Windows安裝Rtree包報錯
於是我突發奇想,重啟電腦,或許會有神奇的事情發生,但是事實證明,這種自暴自棄的方式不可取。
然後我打開了Python安裝的根目錄,檢視rtree這個庫裡面,發現裡面真的沒有spatialindex_c-32.dll,利用everything搜尋,發現我的電腦裡都沒有這個檔案,我覺得不對勁。
又看了某個人發的連結以後,發現這個動態連結庫應該是Rtree附帶的,我沒有的話,很可能是Rtree安裝出現了問題(意識到了問題的根源)。
某個人發的連結
於是我就 pip uninstall rtree然後又利用上面提到的那種安裝Rtree的方法又安裝了一遍(在whl資料夾裡面利用 pip install Rtree-0.9.7-cp39-cp39-win32.whl),似乎這次成功了。
這幾個比較讓人煩惱的庫搞完以後,再利用Git配置依次prettymaps,看到最後有一個successfully,我感覺成功了。

成果展示

也嘗試了一下那個推文中新增文字的程式碼,然後發現我沒有那個海報字型,就放棄了(這樣可能就只有很少的人能看出來我的地圖是哪裡了)。

寫在後面

在什麼都不太會的時候探索確實會有很多坎坷,但是還是要試一試嘛,說不定下次就會了。因為開始沒有寫推文的打算,所以很多神奇的報錯都沒有留下截圖,不過既然都是錯的了,那就換種方式記錄一下好了。

因為作者水平有限,所以很多地方的說法可能並不準確,歡迎在評論區指正。如果這些碎碎念能對你有幫助,那寫下來這篇文章就值得。