Недавнее обновление (слегка непреднамеренное) с сервера Ubuntu 16.04 на сервер Ubuntu 18.04, похоже, сломало наш рабочий сервер CKAN, который был первоначально установлен в 16.04 из исходного кода, версия 2.7.2, в соответствии со стандартной документацией по установке. Я могу запустить сервер на порту 5000 с помощью этих команд из конца этих документов: -
cd /usr/lib/ckan/default/src/ckan
paster serve /etc/ckan/default/development.ini
и все, кажется, хорошо работает в браузере. Но основной рабочий сервер выдает ошибку 500 Internal Server Error. Если я curl -I 127.0.0.1:8080
, с сервера, то в /var/log/apache2/ckan_default.error.log я каждый раз получаю следующие ошибки: -
Error loading 'pyutilib.component' entry points: ''NoneType' object is not callable'
mod_wsgi (pid=9027): Target WSGI script '/etc/ckan/default/apache.wsgi' cannot be loaded as Python module.
mod_wsgi (pid=9027): Exception occurred processing WSGI script '/etc/ckan/default/apache.wsgi'.
Traceback (most recent call last):
File "/etc/ckan/default/apache.wsgi", line 5, in <module>
from paste.deploy import loadapp
File "/usr/local/lib/python2.7/dist-packages/paste/deploy/__init__.py", line 3, in <module>
from paste.deploy.loadwsgi import *
File "/usr/local/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 8, in <module>
import pkg_resources
File "/usr/lib/ckan/default/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3251, in <module>
@_call_aside
File "/usr/lib/ckan/default/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3235, in _call_as
ide
f(*args, **kwargs)
File "/usr/lib/ckan/default/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3279, in _initial
ize_master_working_set
for dist in working_set
File "/usr/lib/ckan/default/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3279, in <genexpr
>
for dist in working_set
File "/usr/lib/ckan/default/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2785, in activate
declare_namespace(pkg)
File "/usr/lib/ckan/default/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2284, in declare_
namespace
_handle_ns(packageName, path_item)
File "/usr/lib/ckan/default/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2217, in _handle_
ns
loader.load_module(packageName)
File "/usr/lib/python2.7/pkgutil.py", line 243, in load_module
mod = imp.load_module(fullname, self.file, self.filename, self.etc)
File "/usr/local/lib/python2.7/dist-packages/pyutilib/component/__init__.py", line 15, in <module>
core.PluginGlobals.add_env("pca")
AttributeError: type object 'PluginGlobals' has no attribute 'add_env'
mod_wsgi (pid=9027): Target WSGI script '/etc/ckan/default/apache.wsgi' cannot be loaded as Python module.
mod_wsgi (pid=9027): Exception occurred processing WSGI script '/etc/ckan/default/apache.wsgi'.
Traceback (most recent call last):
File "/etc/ckan/default/apache.wsgi", line 5, in <module>
from paste.deploy import loadapp
File "/usr/local/lib/python2.7/dist-packages/paste/deploy/__init__.py", line 3, in <module>
from paste.deploy.loadwsgi import *
File "/usr/local/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 8, in <module>
import pkg_resources
File "/usr/lib/ckan/default/lib/python2.7/site-packages/pkg_resources/__init__.py", line 79, in <module>
from . import py31compat
ImportError: cannot import name py31compat
Я не понимаю, почему в журналах есть ссылки как на /usr/lib/ckan/default/lib/python2.7, так и на /usr/local/lib/python2.7. Но я проверил, что обе версии имеют версии пакетов, соответствующие версиям в файле requirements.txt для CKAN 2.7 (единственное исключение — psycopg2, который нам пришлось обновить до версии 2.7.3.2, чтобы справиться с проблемой версии postgresql, описанной в другом месте). Я также пробовал различные перезапуски/перезагрузки.
Буду очень признателен за любые идеи о том, как исправить/где отлаживать дальше.