GenericMappingTools / try-gmt

Try GMT, PyGMT, and GMT.jl online! All in one place!
https://mybinder.org/v2/gh/GenericMappingTools/try-gmt/main?urlpath=lab/tree/landing-page.ipynb
BSD 3-Clause "New" or "Revised" License
42 stars 12 forks source link

pygmt import error on google colaboratory #17

Closed liamtoney closed 1 year ago

liamtoney commented 3 years ago

After running the cell which installs conda etc. the import pygmt command fails with:

Screen Shot 2021-02-17 at 12 05 48 PM
seisman commented 3 years ago

I also noticed it yesterday. It's weird that the commands in the notebook install "python 3.9" but the python version in the error message says it's python3.6.

weiji14 commented 3 years ago

I also noticed it yesterday. It's weird that the commands in the notebook install "python 3.9" but the python version in the error message says it's python3.6.

After doing some reading (e.g. https://towardsdatascience.com/conda-google-colab-75f7c867a522), it seems that we need to pin conda's Python version to be the same as that on Google Collaboratory (currently Python 3.7) instead of the Miniconda default (Python 3.9). However, I tried getting a Python 3.7 installer from https://repo.anaconda.com/miniconda/, and it still produces a DistributionNotFound error (as Liam and a forum user at https://forum.generic-mapping-tools.org/t/installing-pygmt-on-google-colab/898/12 reported). So needs a bit more work somehow.

andrebelem commented 3 years ago

I managed to use pygmt in the colab "installing GMT6 fresh". Take a look at https://github.com/andrebelem/pythonverse/blob/main/PyGMT_on_COLAB.ipynb and feel free to incorporate it in the try-gmt.

I-Hamama commented 6 months ago

Try to reinstall GMT and ghost script and refer to the libgmt.so.6

!sudo apt-get update !sudo apt-get install gmt gmt-dcw gmt-gshhg !sudo apt-get install -y ghostscript !pip install pygmt import os !ln -s /lib/x86_64-linux-gnu/libgmt.so.6 /lib/x86_64-linux-gnu/libgmt.so os.environ['LD_LIBRARY_PATH'] = ' /lib/x86_64-linux-gnu/libgmt.so'

Should work with these commands

andrebelem commented 6 months ago

Two years ago, I created an example of how to use PyGMT in COLAB. I've updated the example now in the latest version of COLAB (March 2024), which you can see here: https://github.com/andrebelem/pythonverse/blob/main/Using_pygmt_in_COLAB_[version_2023].ipynb.

Essentially, you'll install Conda, and then GMT/PyGMT. Note that this should be done in parts, and the first two cells take about 3 minutes to install everything. Good luck.

I-Hamama commented 6 months ago

PyGMT can't recognize to the libgmt.so under Google Colab. So, it is important to refer the path of libgmt.so in linux system which google are using

!ln -s /lib/x86_64-linux-gnu/libgmt.so.6 /lib/x86_64-linux-gnu/libgmt.so

What I did just adding alias of libgmt.so.6 and I reinstalled the GMT and ghost script.

It works well. I didn't try to use conda but good to know 2 ways of solving the problem

Thanks

andrebelem commented 6 months ago

Installing GMT using !sudo apt-get install gmt gmt-dcw gmt-gshhg takes much longer than using conda/mamba, which causes most users to give up on the process. I myself abandoned the idea of apt install some time ago. I recommend using conda install.