I am trying to install Cartopy on Ubuntu and need to install proj v8.0.0
binaries for Cartopy. However when I try to apt-get install proj-bin
I can only get proj v6.3.1
. How do I install the latest (or at least v8.0.0
) proj for cartopy?
I'm answering my own question here partly to help others with this problem, and partly as an archive for myself so I know how to fix this issue if I come across it again. I spent quite a while trying to figure it out, and wrote detailed instructions, so see below:
apt update
Run the following command to install GEOS:
apt-get install libgeos-dev
In case that doesn't do it, install all files with this:
apt-get install libgeos-dev libgeos++-dev libgeos-3.8.0 libgeos-c1v5 libgeos-doc
apt install cmake
apt install sqlite3
apt install curl && apt-get install libcurl4-openssl-dev
apt-get
just in case it works:Unfortunately, cartopy requires proj v8.0.0 as a minimum, but if you install proj using apt you can only install proj v6.3.1
Just for reference in case anything changes, this is the command to install proj from apt:
apt-get install proj-bin
I'm fairly sure this is all you need, but in case it's not, this command will install the remaining proj files:
apt-get install proj-bin libproj-dev proj-data
To remove the above installation, run:
apt-get remove proj-bin
or:
apt-get remove proj-bin libproj-dev proj-data
So if the above commands don't work (it's not working as of 2022/4/8), then follow the below instructions to install proj from source:
proj-x.x.x.tar.gz
):wget https://download.osgeo.org/proj/proj-9.0.0.tar.gz
tar -xf proj-9.0.0.tar.gz
cd proj-9.0.0
mkdir build && cd build
cmake ..
cmake --build .
cmake --build . --target install
ctest
The test command failed on one test for me (19 - nkg
), but otherwise was fine.
You should find the required files in the ./bin
directory
Finally:
cp ./bin/* /bin
cp ./lib/* /lib
Now after all this, you can finally install cartopy with pip:
pip install cartopy
After doing this, my cartopy still wasn't working. I went home to work on this next week, came back, and all of a sudden it was working so maybe try restarting