Kallithea can't support Python-2.7.11

Issue #182 resolved
bitworld created an issue

Comments (7)

  1. Mads Kiilerich

    That seems like an unfortunate change in Python that caused a problem for Kombu. How does that influence Kallithea and what can be done in Kallithea to mitigate the problem? It seems like you just have to upgrade kombu to a version that works with your Python?

  2. Michaƫl BROUTIN

    I also ran into this problem, and I first tried upgrading Kombu to the latest version, but doing so prevents Kallithea to run (since Kombu version is expected to be <2.0.0 and the fix is in 3.0.20). Downgrading to Python-2.7.10 fixed the problem for me.

  3. Mads Kiilerich

    Please test if this patch makes it work for you with 2.7.11:

    --- a/kallithea/lib/celerypylons/commands.py
    +++ b/kallithea/lib/celerypylons/commands.py
    @@ -1,4 +1,9 @@
     # -*- coding: utf-8 -*-
    
    +# Hack for making kombu==1.5.1 compatible with Python 2.7.11 with https://hg.python.org/releases/2.7.11/rev/24bdc4940e81
    +import uuid
    +if not hasattr(uuid, '_uuid_generate_random'):
    +    uuid._uuid_generate_random = None
    +
     import kallithea
     from kallithea.lib.utils import BasePasterCommand, Command, load_rcextensions
    
  4. bitworld reporter

    I have upgraded the Kombu and the Celery : pip install --upgrade Kombu celery

    and patched the Kallithea. It does not works yet.

    Here is my error log:

    Error - <type 'exceptions.ImportError'>: cannot import name _uuid_generate_rando
    m
    URL: http://127.0.0.1:5000/_admin/settings
    sys.path: [
        'D:\\Kallithea\\Sources',
        'D:\\Kallithea\\Env\\Scripts',
        'd:\\kallithea\\sources',
        'D:\\Kallithea\\Env\\lib\\site-packages\\mercurial-3.6.3-py2.7-win32.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\dulwich-0.9.9-py2.7-win32.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\routes-1.13-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\urlobject-2.3.4-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\mock-1.3.0-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\docutils-0.11-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\markdown-2.2.1-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\python_dateutil-1.5-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\babel-1.3-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\celery-2.2.10-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\whoosh-2.5.7-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\pygments-2.0.2-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\mako-1.0.0-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\sqlalchemy-0.7.10-py2.7-win32.egg',
    
        'D:\\Kallithea\\Env\\lib\\site-packages\\formencode-1.2.6-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\webhelpers-1.3-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\beaker-1.6.4-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\pylons-1.0.2-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\webtest-1.4.3-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\webob-1.1.1-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\waitress-0.8.8-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\repoze.lru-0.6-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\funcsigs-0.4-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\pbr-1.8.1-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\pyparsing-1.5.7-py2.7-win32.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\kombu-1.5.1-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\markupsafe-0.23-py2.7-win32.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\tempita-0.5.3.dev0-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\weberror-0.11-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\nose-1.3.7-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\decorator-4.0.6-py2.7.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\simplejson-3.8.1-py2.7-win32.egg',
        'D:\\Kallithea\\Env\\lib\\site-packages\\amqplib-1.0.2-py2.7.egg',
        'd:\\kallithea\\sources\\.eggs\\six-1.10.0-py2.7.egg',
        'd:\\kallithea\\sources\\.eggs\\pastescript-2.0.2-py2.7.egg',
        'd:\\kallithea\\sources\\.eggs\\pastedeploy-1.5.2-py2.7.egg',
        'd:\\kallithea\\sources\\.eggs\\paste-2.0.2-py2.7.egg',
        'C:\\Windows\\system32\\python27.zip',
        'D:\\Kallithea\\Env\\DLLs',
        'D:\\Kallithea\\Env\\lib',
        'D:\\Kallithea\\Env\\lib\\plat-win',
        'D:\\Kallithea\\Env\\lib\\lib-tk',
        'D:\\Kallithea\\Env\\Scripts',
        'c:\\python27\\Lib',
        'c:\\python27\\DLLs',
        'c:\\python27\\Lib\\lib-tk',
        'D:\\Kallithea\\Env',
        'D:\\Kallithea\\Env\\lib\\site-packages']
    File 'D:\\Kallithea\\Env\\lib\\site-packages\\weberror-0.11-py2.7.egg\\weberror\
    \errormiddleware.py', line 171 in __call__
      app_iter = self.application(environ, sr_checker)
    File 'D:\\Kallithea\\Sources\\kallithea\\lib\\middleware\\sessionmiddleware.py',
     line 62 in __call__
      return self.wrap_app(environ, session_start_response)
    File 'D:\\Kallithea\\Env\\lib\\site-packages\\routes-1.13-py2.7.egg\\routes\\mid
    dleware.py', line 131 in __call__
      response = self.app(environ, start_response)
    File 'D:\\Kallithea\\Env\\lib\\site-packages\\pylons-1.0.2-py2.7.egg\\pylons\\ws
    giapp.py', line 102 in __call__
      controller = self.resolve(environ, start_response)
    File 'D:\\Kallithea\\Env\\lib\\site-packages\\pylons-1.0.2-py2.7.egg\\pylons\\ws
    giapp.py', line 231 in resolve
      return self.find_controller(controller)
    File 'D:\\Kallithea\\Env\\lib\\site-packages\\pylons-1.0.2-py2.7.egg\\pylons\\ws
    giapp.py', line 269 in find_controller
      __import__(full_module_name)
    File 'D:\\Kallithea\\Sources\\kallithea\\controllers\\admin\\settings.py', line
    40 in <module>
      from kallithea.lib.celerylib import tasks, run_task
    File 'D:\\Kallithea\\Sources\\kallithea\\lib\\celerylib\\tasks.py', line 29 in <
    module>
      from celery.decorators import task
    File 'D:\\Kallithea\\Env\\lib\\site-packages\\celery-2.2.10-py2.7.egg\\celery\\d
    ecorators.py', line 17 in <module>
      from celery import task as _task
    File 'D:\\Kallithea\\Env\\lib\\site-packages\\celery-2.2.10-py2.7.egg\\celery\\t
    ask\\__init__.py', line 4 in <module>
      from celery.app import app_or_default
    File 'D:\\Kallithea\\Env\\lib\\site-packages\\celery-2.2.10-py2.7.egg\\celery\\a
    pp\\__init__.py', line 16 in <module>
      from kombu.utils import cached_property
    File 'D:\\Kallithea\\Env\\lib\\site-packages\\kombu-1.5.1-py2.7.egg\\kombu\\util
    s\\__init__.py', line 14 in <module>
      from uuid import UUID, uuid4 as _uuid4, _uuid_generate_random
    ImportError: cannot import name _uuid_generate_random
    
  5. Mads Kiilerich

    Unfortunately celery isn't encapsulated as much as it should have been ...

    Can you try placing the same snippet in kallithea/__init__.py ? That seems to work for the test cases I have seen.

  6. Log in to comment