#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, и сервер разработки работает нормально.