Path: csiph.com!news.swapon.de!weretis.net!feeder4.news.weretis.net!ecngs!feeder2.ecngs.de!217.188.199.168.MISMATCH!takemy.news.telefonica.de!telefonica.de!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!news.tele.dk!news.tele.dk!small.news.tele.dk!newsgate.cistron.nl!newsgate.news.xs4all.nl!nzpost1.xs4all.net!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.011 X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'classes.': 0.07; 'twisted,': 0.07; 'api': 0.09; 'importerror': 0.09; 'python': 0.10; 'instead.': 0.15; 'interpreter': 0.15; '2.7.2': 0.16; 'complains': 0.16; 'need,': 0.16; 'skip:[ 60': 0.16; 'twisted': 0.16; 'looked': 0.16; "wouldn't": 0.16; 'skip': 0.18; 'working.': 0.18; '>>>': 0.20; '4.0': 0.22; 'either.': 0.22; 'pass': 0.22; 'bit': 0.23; '(or': 0.23; 'tried': 0.24; 'import': 0.24; 'written': 0.24; 'install': 0.25; "i've": 0.25; 'installed': 0.26; 'message-id:@mail.gmail.com': 0.27; 'idea': 0.28; 'interface': 0.29; 'code:': 0.29; "i'm": 0.30; 'code': 0.30; 'probably': 0.31; "can't": 0.32; 'skip:_ 10': 0.32; 'class': 0.33; 'word.': 0.33; 'file': 0.34; 'requirements': 0.35; 'received:google.com': 0.35; 'skip:i 20': 0.36; 'should': 0.36; 'there': 0.36; 'to:addr:python- list': 0.36; 'skip:z 10': 0.38; 'version': 0.38; 'anything': 0.38; 'why': 0.39; 'to:addr:python.org': 0.40; 'still': 0.40; 'latest': 0.64; 'our': 0.64; 'here': 0.66; 'future.': 0.67; 'old,': 0.83; '3.6': 0.84; 'case?': 0.84; 'to:name:python': 0.84; 'absolutely': 0.88; 'old.': 0.95 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=6kab3oo000G/GNZc+umJ22+KVsIC9IKKENakzxHn5cA=; b=dNs3MvlpXyE7DpJwWvOGB3SOyeHegAm5W26GdWC1wGBhmxm4v27HIMYAMfXOlfbYzA Opv+r40tK5Lj5VQmC0qiiLK+O/LV6Abq/PYyAHGg43wFN9R1j01an1c1w5s5YeG7a5MX Fvq9MEqT0Y3yQtqAoitHWiLCtDV1kacj9Vh6XYFMLyNY3dfZX78TFsLYwtoXwRPO4uwn wfSIvdl2OW6nQXFtpKlEM5z3s32R/9rtub3YBT2Alz+agMp06QpYSfYFEAuA6HrZGTKP ERwvFYhUMZ9FUoBBI5b5nZilX77GQ9xHiWoZ0jk9YVOzg6FTXfBXBD8PhRQKlKDZnHUH MwTA== MIME-Version: 1.0 X-Received: by 10.50.131.170 with SMTP id on10mr4388630igb.6.1440781300521; Fri, 28 Aug 2015 10:01:40 -0700 (PDT) Date: Fri, 28 Aug 2015 12:01:40 -0500 Subject: Having no luck installing Twisted 15.3.0 From: Skip Montanaro To: Python Content-Type: text/plain; charset=UTF-8 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.20+ Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 59 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1440781309 news.xs4all.nl 23752 [2001:888:2000:d::a6]:43343 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:95739 One of our users needs Twisted. I built and installed 15.3.0. When I tried to import it, it complained: ImportError Twisted requires zope.interface 3.6.0 or later. So I downloaded, built and installed the latest version of zope.interface (4.1.2). Still it complains. So I tried 3.7.0. Same old, same old. The I installed precisely 3.6.0. Still it complains that I need 3.6.0. Looking at the INSTALL file for Twisted, I can't see anything else which would be absolutely required to import it. I'm on OpenSuSE 12.2, using Python 2.7.2 provided by The Written Word. Those are hard requirements for the foreseeable future. I have no way to force updates of either. In particular TWW's version of Python is binary-incompatible with OpenSuSE's, so despite the fact that there was probably a Twisted package from them, I wouldn't be able to use it. Here's the full (though abbreviated) traceback: >>> import twisted ImportError Twisted requires zope.interface 3.6.0 or later. [||1] [/opt/local/lib/python2.7/site-packages/twisted/__init__.py||53] [/opt/local/lib/python2.7/site-packages/twisted/__init__.py|_checkRequirements|51] I've looked at the _checkRequirements function. It apparently just attempts to use the interface. The check fails on this bit of code: # Try using the API that we need, which only works right with # zope.interface 3.6 (or 4.0 on Python 3) class IDummy(interface.Interface): pass @interface.implementer(IDummy) class Dummy(object): pass Here it is at the interpreter prompt: >>> from zope import interface >>> class IDummy(interface.Interface): ... pass ... >>> @interface.implementer(IDummy) ... class Dummy(object): pass ... TypeError Can't use implementer with classes. Use one of the class-declaration functions instead. [||2] [/opt/TWWfsw/python27p/lib/python2.7/site-packages/zope/interface/declarations.py|__call__|496] I'm just throwing Twisted code at the prompt. I have no idea why it might not be working. Any suggestions? Should I go find a Twisted group to plead my case? Thx, Skip