ckan / ckan

CKAN is an open-source DMS (data management system) for powering data hubs and data portals. CKAN makes it easy to publish, share and use data. It powers catalog.data.gov, open.canada.ca/data, data.humdata.org among many other sites.
https://ckan.org/
Other
4.44k stars 1.99k forks source link

Cannot run ckan with docker: `ImportError: no module named rdflib` #5026

Open simeonackermann opened 5 years ago

simeonackermann commented 5 years ago

CKAN Version if known (or site URL)

ckan-2.8.3

Please describe the expected behaviour

Running ckan docker container.

Please describe the actual behaviour

ckan container exited with error message: ImportError: No module named rdflib:

ckan          | Traceback (most recent call last):
ckan          |   File "/usr/local/bin/ckan-paster", line 10, in <module>
ckan          |     sys.exit(run())
ckan          |   File "/usr/lib/ckan/venv/local/lib/python2.7/site-packages/paste/script/command.py", line 102, in run
ckan          |     invoke(command, command_name, options, args[1:])
ckan          |   File "/usr/lib/ckan/venv/local/lib/python2.7/site-packages/paste/script/command.py", line 141, in invoke
ckan          |     exit_code = runner.run(args)
ckan          |   File "/usr/lib/ckan/venv/local/lib/python2.7/site-packages/paste/script/command.py", line 236, in run
ckan          |     result = self.command()
ckan          |   File "/usr/lib/ckan/venv/src/ckan/ckan/lib/cli.py", line 357, in command
ckan          |     self._load_config(cmd!='upgrade')
ckan          |   File "/usr/lib/ckan/venv/src/ckan/ckan/lib/cli.py", line 330, in _load_config
ckan          |     self.site_user = load_config(self.options.config, load_site_user)
ckan          |   File "/usr/lib/ckan/venv/src/ckan/ckan/lib/cli.py", line 237, in load_config
ckan          |     load_environment(conf.global_conf, conf.local_conf)
ckan          |   File "/usr/lib/ckan/venv/src/ckan/ckan/config/environment.py", line 112, in load_environment
ckan          |     p.load_all()
ckan          |   File "/usr/lib/ckan/venv/src/ckan/ckan/plugins/core.py", line 140, in load_all
ckan          |     load(*plugins)
ckan          |   File "/usr/lib/ckan/venv/src/ckan/ckan/plugins/core.py", line 154, in load
ckan          |     service = _get_service(plugin)
ckan          |   File "/usr/lib/ckan/venv/src/ckan/ckan/plugins/core.py", line 256, in _get_service
ckan          |     return plugin.load()(name=plugin_name)
ckan          |   File "/usr/lib/ckan/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2305, in load
ckan          |     return self.resolve()
ckan          |   File "/usr/lib/ckan/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2311, in resolve
ckan          |     module = __import__(self.module_name, fromlist=['__name__'], level=0)
ckan          |   File "/usr/lib/ckan/venv/src/ckanext-dcat/ckanext/dcat/plugins.py", line 11, in <module>
ckan          |     from ckanext.dcat.logic import (dcat_dataset_show,
ckan          |   File "/usr/lib/ckan/venv/src/ckanext-dcat/ckanext/dcat/logic.py", line 11, in <module>
ckan          |     from ckanext.dcat.processors import RDFSerializer
ckan          |   File "/usr/lib/ckan/venv/src/ckanext-dcat/ckanext/dcat/processors.py", line 11, in <module>
ckan          |     import rdflib
ckan          | ImportError: No module named rdflib
ckan exited with code 1

What steps can be taken to reproduce the issue?

Follow docs to install from docker compose.

simeonackermann commented 5 years ago

rdflib is required by ckanext-dcat and described in its requirements.txt. I solved the issue with a quick fix by adding them to ckan requirements.txt:

rdflib==4.2.1
rdflib-jsonld==0.4.0
git+https://github.com/geomet/geomet.git
ckantoolkit==0.0.3

A real fix should ad the requirements of all extensions to the requirements.in file.