【发布时间】:2023-02-14 23:14:15
【问题描述】:
我正在尝试在 Ubuntu 22.04 上安装 MapProxy 1.15.1。我粗略地关注了 the install documentation from mapproxy.org 似乎不完全兼容并且有点过时了。
综上所述,它不起作用。我得到
# mapproxy-util --version
Traceback (most recent call last):
File "/root/mapproxy/bin/mapproxy-util", line 5, in <module>
from mapproxy.script.util import main
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/script/util.py", line 29, in <module>
from mapproxy.script.conf.app import config_command
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/script/conf/app.py", line 32, in <module>
from .sources import sources
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/script/conf/sources.py", line 17, in <module>
from mapproxy.srs import SRS
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/srs.py", line 26, in <module>
from mapproxy.proj import USE_PROJ4_API
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/proj.py", line 282, in <module>
res = try_import()
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/proj.py", line 155, in try_libproj_import
libproj = init_libproj()
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/proj.py", line 58, in init_libproj
libproj = load_library('libproj')
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/util/lib.py", line 65, in load_library
lib = load_library_(lib_name, locations_conf)
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/util/lib.py", line 69, in load_library_
lib_path = find_library(lib_name)
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/util/lib.py", line 93, in find_library
lib = _find_library(lib_name)
File "/usr/lib/python3.10/ctypes/util.py", line 341, in find_library
_get_soname(_findLib_gcc(name)) or _get_soname(_findLib_ld(name))
File "/usr/lib/python3.10/ctypes/util.py", line 147, in _findLib_gcc
if not _is_elf(file):
File "/usr/lib/python3.10/ctypes/util.py", line 99, in _is_elf
with open(filename, 'br') as thefile:
FileNotFoundError: [Errno 2] No such file or directory: b'liblibproj.a'
我从 util.py 得到的似乎是它打算首先尝试带有前缀“lib”的参数,然后没有。但是,由于某种原因,它会异常停止而不是继续尝试。这个也提到了on Github,但是没有回应。
我尝试了各种方法来解决这个问题,例如修补代码并放置符号链接。他们都部分地工作了。我遇到了下一个错误:
# mapproxy-util --version
Found libproj >=5. Using this library without pyproj is deprecated and not fully supported. Please install pyproj >= 2.
Traceback (most recent call last):
File "/root/mapproxy/bin/mapproxy-util", line 5, in <module>
from mapproxy.script.util import main
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/script/util.py", line 29, in <module>
from mapproxy.script.conf.app import config_command
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/script/conf/app.py", line 32, in <module>
from .sources import sources
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/script/conf/sources.py", line 17, in <module>
from mapproxy.srs import SRS
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/srs.py", line 26, in <module>
from mapproxy.proj import USE_PROJ4_API
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/proj.py", line 282, in <module>
res = try_import()
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/proj.py", line 155, in try_libproj_import
libproj = init_libproj()
File "/root/mapproxy/lib/python3.10/site-packages/mapproxy/proj.py", line 66, in init_libproj
libproj.pj_init_plus.argtypes = [c_char_p]
File "/usr/lib/python3.10/ctypes/__init__.py", line 387, in __getattr__
func = self.__getitem__(name)
File "/usr/lib/python3.10/ctypes/__init__.py", line 392, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /lib/x86_64-linux-gnu/libproj.so.22: undefined symbol: pj_init_plus
总之,Ubuntu 22.04 上的几个包似乎与 MapProxy 不兼容。我目前想不出如何解决这个问题。可能我需要旧版本的 libproj,但我的知识不足以安装并行版本的 POSIX 库。对此有更好/更简单的解决方案吗?
附录:我希望一些用户创建一个标签 maproxy 并将其添加到此处。我做不到。
【问题讨论】: