Ошибка внутреннего сервера CKAN (500) при ошибках производства / python в журналах после обновления ubuntu 16-> 18

#python-2.7 #ubuntu-18.04 #wsgi #ckan

#python-2.7 #ubuntu-18.04 #wsgi #ckan

Вопрос:

Недавнее обновление (слегка непреднамеренное) с Ubuntu 16.04 на Ubuntu 18.04 server, похоже, нарушило работу нашего производственного сервера CKAN, который был первоначально установлен в 16.04 из исходного кода версии 2.7.2 в соответствии со стандартными установочными документами. Я могу запустить сервер на порту 5000 с помощью этих команд, начиная с конца этих документов:-

 cd /usr/lib/ckan/default/src/ckan
paster serve /etc/ckan/default/development.ini
  

и, похоже, все работает хорошо в браузере. Но основной производственный сервер выдает мне ошибку 500 Ошибка внутреннего сервера. Если я 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, описанной в другом месте). Я также пробовал различные перезапуски / перезагрузки.

Любые идеи о том, как исправить / где отлаживать дальше, были бы очень признательны.

Ответ №1:

CKAN должен быть запущен под управлением python 2.7, убедитесь, что ваш ubuntu использует python 2.7, если нет, вам нужно настроить его на его использование, мне пришлось перейти с ubunto на centos 7, чтобы легко избавиться от этих проблем.

Комментарии:

1. Мы уже используем Python 2.7, и сервер разработки работает нормально.