[PYTHON] Installez pyproj sur Jetson / RasPi

Je suis accro à l'installation d'un nouveau pyproj (ver2.1 ou supérieur) avec Docker avec la version docker de Jetson Nano, alors prenez-en note. pyproj est un outil très utile que vous pouvez utiliser pour transformer votre système géodésique. (cf.) Mes posts passés

Contexte

Ce qui était faux

Jusqu'à présent, j'écrivais `` pyproj == 2.6.1.post1 '' dans requirex.txt pour pip3. Il a fonctionné sur WSL1 (ubuntu18.04) pour les ordinateurs portables et l'image Docker (base ubuntu18.04) pour CI / CD sur Google Cloud Platform. J'ai essayé de faire la même chose avec Jetson Nano (Jetpak4.4? Ubuntu18.04) ou docker pour raspberry pi4, mais cela n'a pas fonctionné avec ce requirements.txt, probablement parce que le processeur est différent de ARMv8.

Version PROJ

Le stabilisateur de pyproj semble être 2.6.1 maintenant (07/10/2020). http://pyproj4.github.io/pyproj/stable/

image.png

Comme vous pouvez le voir ici, PROJ doit avoir la version 6.2.0 ou supérieure installée. Le problème était que je n'ai pas pu installer une nouvelle bibliothèque appelée PROJ utilisée par pyproj. (cf.) PROJ (https://proj.org/) image.png

Si vous souhaitez simplement installer PROJ et libproj.a, vous pouvez le faire ci-dessous. En fait, il est écrit dans les Instructions d'installation de la famille principale.

$ sudo apt install proj-bin
$ sudo apt install libproj-dev

Cependant, le problème est que même si vous faites cela, seuls les anciens seront inclus.

$ proj
Rel. 4.9.3, 15 August 2016
usage: proj [ -bCeEfiIlormsStTvVwW [args] ] [ +opts[=arg] ] [ files ]

$  ldd `which proj` | grep libproj
        libproj.so.12 => /usr/lib/x86_64-linux-gnu/libproj.so.12 (0x00007f2adad70000)

Même dans cet état, si `` `pyproj == 1.9.6``` et pyproj sont également anciens, l'installation de pip3 peut être effectuée. Cependant, mon code utilisait l'API de pyproj> = 2.1. Je ne veux pas réécrire le code, j'ai donc décidé de faire de mon mieux pour installer pyproj.

Comment installer

Après tout, j'ai construit la dernière version de PROJ à partir des sources, je l'ai installée, puis pip3 pour obtenir pyproj == 2.6.1.post1. C'est l'installation de PROJ, mais c'est plutôt bien.

Installer PROJ

Le point est --Installez les bibliothèques requises pour PROJ avant de construire --libproj.a sera installé dans / usr / local / lib, donc incluez-le dans votre LD_LIBRARY_PATH. Dans mon environnement, cette variable était vide.

$ apt install -y \
  zlib1g-dev libsqlite3-dev pkg-config sqlite3 libcurl4-gnutls-dev libtiff5-dev 
$ wget https://download.osgeo.org/proj/proj-7.1.1.tar.gz
$ tar zxvf proj-7.1.1.tar.gz
# cd proj-7.1.1 && ./configure && make && make install
$ export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH

Le nouveau est arrivé sain et sauf.

$ proj
Rel. 7.0.1, May 1st, 2020
usage: proj [-bdeEfiIlmorsStTvVwW [args]] [+opt[=arg] ...] [file ...]
$ ldd `which proj` | grep libproj
        libproj.so.19 => /usr/local/lib/libproj.so.19 (0x0000007fad95b000)

Installez pyproj

Comme vous pouvez le voir en exécutant pip3, vous devez définir une variable d'environnement appelée PROJ_DIR. J'étais OK ci-dessous. Cela semblait faire référence à $ PROJ_DIR / lib / libproj.a '' et $ PROJ_DIR / bin / proj ''.

$ export PROJ_DIR=/usr/local/
$ pip3 install pyproj==2.6.1.post1

J'ai écrit ce contenu dans un Dockerfile et le docker a été construit avec succès. la construction de docker a pris du temps. Construire à partir de la source est difficile.

Une méthode qui peut être plus facile à réaliser plus tard

Il y avait beaucoup de dépendances sur la construction de PROJ et l'installation de pyproj, mais j'aurais peut-être dû faire référence au Dockerfile dans le source pyproj. Est-ce vraiment de nos jours de distribuer avec docker?

Le https://github.com/OSGeo/PROJ/blob/master/Dockerfile contient les éléments suivants: image.png

Souhaitez-vous cloner pyproj depuis github et le construire directement? (https://github.com/pyproj4/pyproj)

fin

Donc, j'ai réussi à atteindre mon objectif (en utilisant pyproj dans docker build / run sur ARMv8). Il n'y a pas de TODO en particulier, mais je suis sûr que ce sera un monde heureux dans lequel apt et pip entreront facilement dans le futur. Je suis désolé pour cette application, mais pour le moment, c'est tout pour aujourd'hui.

Recommended Posts

Installez pyproj sur Jetson / RasPi
Comment installer OpenCV sur Jetson Nano Python
Installer mecab sur Marvericks
Installez Tensorflow sur Mac
Installez TensorFlow sur Ubuntu
Installer python sur WSL
Installez Faiss sur CentOS 7
Installez pyenv sur Mac
Installer pip sur Mavericks
Installez Python sur Pidora.
Installez mongodb sur termux
Installez Scrapy sur python3
Installer docker sur Fedora31
Installez numba sur CentOS 7.2
Installez Python sur Mac
Installer Python 3 dans un environnement Mac
Installez Plone (4.3.6) sur MacOSX (10.10.3)
Installez Python3.4 sur CentOS 6.6
Installez JModelica sur Ubuntu
Installez Anaconda sur Windows 10
Installez numpy sur Marvericks
Installez python sur Windows
Installer enebular-agent sur le livre Chrome
Installez pycuda sur Windows10
Installez mecab-python sur CentOS
Installez Python 2.7.3 sur CentOS 5.4
Installez pygraphviz sur Windows 10
Installez Python 3.3 sur Ubuntu 12.04
Installez Chainer 1.5.0 sur Windows
Installez Python 3.4 sur Mac
Installez Caffe sur Mac
Installez Theano sur Ubuntu 12.04
Installez pyenv sur OSX
Installer mecab sur Mac
Installez awscli sur centos7
Installez angr sur Ubuntu 18.04
Installer Chainer sur CentOS 6.7
installer mecab-python sur Mac
Installez pip / pip3 sur Ubuntu
Installez Python 3.6 sur Docker
Installez octave_kernel sur Jupyter [note supplémentaire]
Installez Numpy dans virtualenv sur Windows
Installez Minecraft sur Arch Linux
Installez cvxopt sur Anaconda 64 bits
Installez Scrapy sur Raspbian (Jessie)
Installez Python 3.8 sur RHEL 8 (AppStream)
Installer Linux sur Chromebox
Installer pygame sur python3.4 sur Mac
Installez Tomcat 9 sur Cent OS 8
Installez cvxpy sur Windows, Anaconda
Installez la série ImageMagick-6.2.x sur CentOS7.7
Installez Python 3.8 sur CentOS 7 (SCL)
Installez JDK sur Linux
Installer le module sur Anaconda (Mac)
Installez OpenPose sur mac (Catalina)
Installez MariaDB sur le VPS de Sakura
Installez numba sur Mac
Installez pandas 0.14 sur python3.4 [sur Mac]
Installez OpenCV sur Ubuntu + python
Installez Chainer 1.6 (GPU) sur Windows 7.
wsl Installer PostgreSQL sur Ubuntu 18.04