libgdal.so.20: неопределенный символ - PullRequest
0 голосов
/ 07 июня 2018

вчера код работал, но когда я запускаю свой код сегодня, возникает следующая ошибка:

runfile('/media/mattes/data1/dataDMattes/Code/Python/PythonProgram/main.py', wdir='/media/mattes/data1/dataDMattes/Code/Python/PythonProgram')

Traceback (most recent call last):

File "<ipython-input-1-e8fdc416f3c8>", line 1, in <module>
runfile('/media/mattes/data1/dataDMattes/Code/Python/PythonProgram/main.py', wdir='/media/mattes/data1/dataDMattes/Code/Python/PythonProgram')

File "/home/mattes/anaconda3/envs/gmt-python2/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
execfile(filename, namespace)

File "/home/mattes/anaconda3/envs/gmt-python2/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "/media/mattes/data1/dataDMattes/Code/Python/PythonProgram/main.py", line 17, in <module>
import ogr

File "/home/mattes/anaconda3/envs/gmt-python2/lib/python3.6/site-packages/ogr.py", line 2, in <module>
from osgeo.gdal import deprecation_warn

File "/home/mattes/anaconda3/envs/gmt-python2/lib/python3.6/site-packages/osgeo/__init__.py", line 21, in <module>
_gdal = swig_import_helper()

File "/home/mattes/anaconda3/envs/gmt-python2/lib/python3.6/site-packages/osgeo/__init__.py", line 17, in swig_import_helper
_mod = imp.load_module('_gdal', fp, pathname, description)

File "/home/mattes/anaconda3/envs/gmt-python2/lib/python3.6/imp.py", line 243, in load_module
return load_dynamic(name, filename, file)

File "/home/mattes/anaconda3/envs/gmt-python2/lib/python3.6/imp.py", line 343, in load_dynamic
return _load(spec)

ImportError: /home/mattes/anaconda3/envs/gmt-python2/lib/python3.6/site-packages/osgeo/../../../libgdal.so.20: undefined symbol: _ZN11xercesc_3_211InputSource11setEncodingEPKDs

Я также попытался переустановить все и снова установил gdal и libgdal, но ошибка по-прежнемупроисходит.Я использую виртуальную среду, в которой у меня есть:

gdal                      2.2.4                    py36_0    conda-forge
libgdal                   2.2.4                hc8d23f9_1    anaconda

Ну, я знаю, что эти два из разных источников, но это работало до вчерашнего дня.

Я использую Python 3.6.3 с Anaconda вUbuntu 16.04.

Обновление

Как я выяснил, эта проблема также возникает, когда я использую PyCharm вместо Anaconda, с той же ошибкой.В этом случае я использую GDAL, загруженный с помощью команды pip и предустановленной libgdal.

В данном случае это сообщение об ошибке:

Traceback (most recent call last):
File "/opt/pycharm-community-2018.1.4/helpers/pydev/pydev_run_in_console.py", line 52, in run_file
pydev_imports.execfile(file, globals, locals)  # execute the script
File "/opt/pycharm-community-2018.1.4/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "/media/mattes/data1/dataDMattes/Code/Python/PythonProgram/main.py", line 18, in <module>
import ogr
File "/opt/pycharm-community-2018.1.4/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 19, in do_import
module = self._system_import(name, *args, **kwargs)
File "/usr/lib/python3/dist-packages/ogr.py", line 2, in <module>
from osgeo.gdal import deprecation_warn
File "/opt/pycharm-community-2018.1.4/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 19, in do_import
module = self._system_import(name, *args, **kwargs)
File "/opt/pycharm-community-2018.1.4/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 19, in do_import
module = self._system_import(name, *args, **kwargs)
File "/usr/lib/python3/dist-packages/osgeo/__init__.py", line 21, in <module>
_gdal = swig_import_helper()
File "/usr/lib/python3/dist-packages/osgeo/__init__.py", line 17, in swig_import_helper
_mod = imp.load_module('_gdal', fp, pathname, description)
File "/usr/lib/python3.5/imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "/usr/lib/python3.5/imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: /usr/lib/libgdal.so.20: undefined symbol: _ZN11xercesc_3_111InputSource11setEncodingEPKt

Для PyCharm я использовал Python 3.5.2.

У кого-нибудь есть идея?

Большое спасибо!

1 Ответ

0 голосов
/ 07 июня 2018

Если это сработало вчера, попробуйте посмотреть на conda list --revisions -n gmt-python2, чтобы увидеть, что изменилось с тех пор.

Я не думаю, что сама Anaconda приходит с gdal с канала conda-forge и libgdal с канала anaconda.Так что это должно было произойти в какой-то момент.

Вы можете попытаться заставить Conda обновиться, используя любой из каналов.С GDAL я определенно предпочитаю сборку conda-forge, так как она имеет (по крайней мере, в прошлом) лучше работающие сценарии активации, которые также правильно устанавливают переменную среды GDAL_DATA при переключении сред.

conda install conda-forge::gdal=2.2.4 --force --update-dependencies
...