Package: python2-pyro4
Version: 4.53-1
Severity: grave
Justification: renders package unusable

When trying to import Pyro4 in python2.7 following pops up (example is from
ipython but exactly the same output is from the app when trying to use it):

In [1]: import Pyro4
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-5bb56b9a009c> in <module>()
----> 1 import Pyro4

/usr/lib/python2.7/dist-packages/Pyro4/__init__.pyc in <module>()
     64
     65 # import the required Pyro symbols into this package
---> 66 from Pyro4.core import URI, Proxy, Daemon, callback, batch, async, 
oneway, expose, behavior, current_context
     67 from Pyro4.naming import locateNS, resolve
     68 from Pyro4.futures import Future

/usr/lib/python2.7/dist-packages/Pyro4/core.py in <module>()
     19 from Pyro4 import errors, threadutil, socketutil, util, constants, 
message
     20 from Pyro4.socketserver.threadpoolserver import SocketServer_Threadpool
---> 21 from Pyro4.socketserver.multiplexserver import SocketServer_Multiplex
     22
     23 __all__ = ["URI", "Proxy", "Daemon", "current_context", "callback", 
"batch", "async", "expose", "behavior", "oneway"]

/usr/lib/python2.7/dist-packages/Pyro4/socketserver/multiplexserver.py in 
<module>()
     16     import selectors
     17 except ImportError:
---> 18     import selectors34 as selectors
     19 from Pyro4 import socketutil, errors, util
     20 import Pyro4.constants

ImportError: No module named selectors34


'selectors34' is a backport of python3.4 'selectors' to python2.7, which is
replacement for python2.7 'select'.
Problem is that 'selectors34' is not packaged thus not available in Stretch and
I'm afraid it's too late for it to be allowed in.

Therefore I see following options:
1. Revert python2-pyro4 (src:Pyro4) to 4.43-1 this one is using 'select' thus
  doesn't require 'selectors34'.
2. Patch 4.53-1 with something like this:

if sys.version_info[:2] == (2,7):
   import select as selectors
else:
        import selectors

in the socetserver/multiplexserver.py instead of try except for importing it
and purge requires.txt file from the egg-info.

3. Package selectors34 and convince release managers to allow it in.

Reply via email to