pyproj를 설치하기 위한 가이드는 아래 링크에 나와있으며,
https://pyproj4.github.io/pyproj/stable/installation.html
pip intall pyproj==2.6.1 명령어로도 설치가 가능합니다. 단, 위에서 언급했듯이 prerequisites 으로 필요한 PROJ를 요구 버전에 따라 빌드해야 합니다. pyproj 최신 버전인(2020/05) 2.6.1 의 경우, proj 6.2 버전 이상을 요구합니다.
PROJ를 빌드하기 위해 소스 코드를 받습니다. 외부망 연결이 되어있는 경우 git clone 명령어로 받거나, 안되어 있는 경우는 github에서 소스코드를 zip 파일로 다운로드 받아서 서버에 올려둡니다.
[root@p1214-met1 ~]# yum install git
[root@p1214-met1 ~]# git clone https://github.com/OSGeo/PROJ.git
[root@p1214-met1 ~]# cd PROJ
[root@p1214-met1 PROJ]# git checkout 6.2
혹은
[root@p1214-met1 ~]# unzip PROJ-6.2.zip
[root@p1214-met1 ~]# cd PROJ
이후에는 동일하게 진행합니다.
[root@p1214-met1 PROJ]# yum install automake libtool autoconf devtoolset-7-gcc-c++.ppc64le
[root@p1214-met1 ~]# export PATH=/opt/rh/devtoolset-7/root/usr/bin:$PATH
[root@p1214-met1 PROJ]# ./autogen.sh
Running aclocal
Running autoheader
Running libtoolize
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
Running automake
configure.ac:20: installing './config.guess'
configure.ac:20: installing './config.sub'
configure.ac:10: installing './install-sh'
configure.ac:10: installing './missing'
src/Makefile.am: installing './depcomp'
parallel-tests: installing './test-driver'
Running autoconf
======================================
Now you are ready to run './configure'
======================================
빌드 진행 시에, sqlite3 을 사용합니다. sqlite3은 미리 설치되어 있어야 하며, conda 명령어를 이용하여 쉽게 설치할 수 있습니다. 테스트 환경의 경우, 이미 3.30.1 버전의 sqlite가 설치되어 있습니다.
[root@p1214-met1 PROJ]# conda list sqlite
# packages in environment at /opt/anaconda3:
#
# Name Version Build Channel
sqlite 3.30.1 h7b6447c_0
설치된 경로를 찾습니다.
[root@p1214-met1 PROJ]# find / -name libsqlite3.so
/opt/anaconda3/pkgs/sqlite-3.23.1-he433501_0/lib/libsqlite3.so
/opt/anaconda3/pkgs/sqlite-3.30.1-h7b6447c_0/lib/libsqlite3.so
/opt/anaconda3/lib/libsqlite3.so
찾아낸 경로를 참조하여, 아래 ./configure 명령의 파라미터로 SQLITE3_CFLAGS (include 경로)와 SQLITE3_LIBS(lib 경로) 를 적용합니다. 아래의 포맷으로 작성하여 제출하셔야 에러 없이 진행됩니다. 설치할 특정 경로를 지정하는 경우, --prefix=/경로 를 configure 뒤에 붙여줍니다. 별도 설정이 없는 경우 /usr/local에 설치됩니다.
[root@p1214-met1 PROJ]# ./configure SQLITE3_CFLAGS="-I/opt/anaconda3/pkgs/sqlite-3.30.1-h7b6447c_0/include" SQLITE3_LIBS="-L/opt/anaconda3/pkgs/sqlite-3.30.1-h7b6447c_0/lib -lsqlite3"
[root@p1214-met1 PROJ]# make
[root@p1214-met1 PROJ]# make install
[root@p1214-met1 PROJ]# make check
별도 ./configure 시에 별도 prefix를 정해주지 않으면, 기본으로 /usr/local에 설치됩니다. 경로를 확인해보면 설치가 완료된 것을 보실 수 있습니다.
[root@p1214-met1 PROJ]# find /usr/local -name proj
/usr/local/bin/proj
/usr/local/include/proj
/usr/local/share/proj
PROJ_DIR 경로를 지정해줍니다.
[root@p1214-met1 PROJ]# export PROJ_DIR=/usr/local
[root@p1214-met1 PROJ]# PROJ_WHEEL=true
pip로 pyproj를 설치합니다. PROJ_DIR 경로에서 자동으로 proj를 참조하게 됩니다.
[root@p1214-met1 PROJ]# pip install pyproj==2.6.1
Collecting pyproj==2.6.1
Using cached https://files.pythonhosted.org/packages/33/2a/44d5631fe4ad9396a3eecdb4de36bc0cbc4b9893c63e4552413bd97d3465/pyproj-2.6.1.tar.gz
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Building wheels for collected packages: pyproj
Building wheel for pyproj (PEP 517) ... done
Created wheel for pyproj: filename=pyproj-2.6.1-cp36-cp36m-linux_ppc64le.whl size=1350200 sha256=5b7fbb56857978e9071513f1a0845a46a5536e0069b8a000a58d0e613be53bbd
Stored in directory: /root/.cache/pip/wheels/af/57/61/9555392abaa4d863604b440ce7279400833b4c5c46b708c88e
Successfully built pyproj
Installing collected packages: pyproj
Found existing installation: pyproj 1.9.5.1
Uninstalling pyproj-1.9.5.1:
Successfully uninstalled pyproj-1.9.5.1
Successfully installed pyproj-2.6.1
conda에서 pyproj설치가 완료되었는지 확인합니다.
[root@p1214-met1 PROJ]# conda list pyproj
# packages in environment at /opt/anaconda3:
#
# Name Version Build Channel
pyproj 2.6.1 pypi_0 pypi