s2geometry 的python接口安装问题
Google S2Geometry
Installation
sudo apt install cmake libgflags-dev libgoogle-glog-dev libgtest-dev libssl-dev
sudo apt install swig # for python interface
# get source code
cd [parent of directory where you want to put S2]
git clone https://github.com/google/s2geometry.git
cd s2geometry
# build
mkdir build
cd build
# You can omit -DGTEST_ROOT to skip tests; see above for macOS.
cmake -DGTEST_ROOT=/usr/src/gtest ..
make
make test # If GTEST_ROOT specified above.
sudo make install
问题 libs2.so: cannot open shared object file: No such file or directory
user@ubuntu-t470:~/s2geometry/build$ python
Python 2.7.12 (default, Nov 12 2018, 14:36:49)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pywraps2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pywraps2.py", line 28, in <module>
_pywraps2 = swig_import_helper()
File "/usr/local/lib/python2.7/dist-packages/pywraps2.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywraps2', fp, pathname, description)
ImportError: libs2.so: cannot open shared object file: No such file or directory
>>>
解决
# clean
s2geometry/build$ make clean
s2geometry/build$ cmake ..
然后按照参考[1] importerror-libs2-so-cannot-open-shared-object-file-no-such-file-or-directory 所说,将 CMakeCache.txt 中的 CMAKE_INSTALL_PREFIX:PATH 从 /usr/local 改为 /usr
接着运行
s2geometry/build$ make && sudo make install
s2geometry/build$ python ../src/python/pywraps2_test.py
..........................................
----------------------------------------------------------------------
Ran 42 tests in 0.018s
OK
参考
[1] importerror-libs2-so-cannot-open-shared-object-file-no-such-file-or-directory