Комбайн ckan: ошибка "Нет модуля с именем pika"

На экземпляре ckan, работающем нормально, я установил расширение харвестера, следуя этому руководству: https://github.com/ckan/ckanext-harvest

Вот шаги, которые я следовал:

. /usr/lib/ckan/default/bin/activate
cd /usr/lib/ckan/default/src/ckan

sudo pip install -e git+https://github.com/okfn/ckanext-harvest.git@stable#egg=ckanext-harvest

cd /usr/lib/ckan/default/src/ckan/src/ckanext-harvest
sudo pip install -r pip-requirements.txt

Это содержимое файла pip-needs.txt:

pika==0.9.8
redis==2.10.1

Я продолжаю настраивать плагин, кажется, все работает нормально. У меня это работает на http://localhost/harvest. Затем я создаю новый источник, и когда я хочу запустить команду сбора, я получаю эту ошибку:

$ . /usr/lib/ckan/default/bin/activate
$ cd /usr/lib/ckan/default/src/ckan/src/ckanext-harvest
$ paster --plugin=ckanext-harvest harvester gather_consumer --config=/etc/ckan/default/production.ini 

Traceback (most recent call last):
  File "/usr/lib/ckan/default/bin/paster", line 9, in <module>
    load_entry_point('PasteScript==1.7.5', 'console_scripts', 'paster')()
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 104, in run
    invoke(command, command_name, options, args[1:])
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 143, in invoke
    exit_code = runner.run(args)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 238, in run
    result = self.command()
  File "/usr/lib/ckan/default/src/ckan/src/ckanext-harvest/ckanext/harvest/commands/harvester.py", line 125, in command
    from ckanext.harvest.queue import get_gather_consumer, gather_callback
  File "/usr/lib/ckan/default/src/ckan/src/ckanext-harvest/ckanext/harvest/queue.py", line 5, in <module>
    import pika
ImportError: No module named pika

Я почти уверен, что с virtualenv должно быть что-то действительно глупое (новичок Python здесь)

1 ответ

Это потому что ты использовал sudo pip, Из-за того, как работает virtualenv Python, если вы хотите использовать sudo чтобы установить в virtualenv, вам нужно указать полный путь к pip, Примерно так будет работать

sudo /usr/lib/ckan/default/bin/pip -e git+https://github.com/okfn/ckanext-harvest.git@stable#egg=ckanext-harvest
cd /usr/lib/ckan/default/src/ckanext-harvest
sudo /usr/lib/ckan/default/bin/pip install -r pip-requirements.txt
Другие вопросы по тегам