Hi, The new release of python-daemon installs great—thanks for that. However, it seems like users run into trouble when installing a package that depends on it. Here's the minimal setup.py to reproduce the issue:
``` from setuptools import setup setup(name='pdtest', version='1.0', install_requires=['python-daemon==2.0.3']) ``` Run `python2 setup.py install` on this file, and it will eventually give you this traceback: ``` /home/brett/temp/setupvenv/local/lib/python2.7/site-packages/pkg_resources/__init__.py:2510: PEP440Warning: 'python (daemon-2.0)' is being parsed as a legacy, non PEP 440, version. You may find odd behavior and sort order. In particular it will be sorted as less than 0.0. It is recommend to migrate to PEP 440 compatible versions. PEP440Warning, Best match: python-daemon 2.0.3 Downloading https://pypi.python.org/packages/source/p/python-daemon/python-daemon-2.0.3.tar.gz#md5=eb159623521f68757c6d3c384fcedd86 Processing python-daemon-2.0.3.tar.gz Writing /tmp/easy_install-N5azww/python-daemon-2.0.3/setup.cfg Running python-daemon-2.0.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-N5azww/python-daemon-2.0.3/egg-dist-tmp-5xefe0 Traceback (most recent call last): File "setup.py", line 2, in <module> setup(name='pdtest', version='1.0', install_requires=['python-daemon==2.0.3']) File "/usr/lib/python2.7/distutils/core.py", line 152, in setup dist.run_commands() File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands self.run_command(cmd) File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/command/install.py", line 67, in run self.do_egg_install() File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/command/install.py", line 117, in do_egg_install cmd.run() File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 376, in run self.easy_install(spec, not self.no_deps) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 600, in easy_install return self.install_item(None, spec, tmpdir, deps, True) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 651, in install_item self.process_distribution(spec, dist, deps) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 699, in process_distribution [requirement], self.local_index, self.easy_install File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 797, in resolve dist = best[req.key] = env.best_match(req, ws, installer) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1047, in best_match return self.obtain(req, installer) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1059, in obtain return installer(requirement) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 619, in easy_install return self.install_item(spec, dist.location, tmpdir, deps) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 649, in install_item dists = self.install_eggs(spec, download, tmpdir) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 834, in install_eggs return self.build_and_install(setup_script, setup_base) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1055, in build_and_install self.run_setup(setup_script, setup_base, args) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1041, in run_setup run_setup(setup_script, args) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 204, in run_setup raise File "/usr/lib/python2.7/contextlib.py", line 35, in __exit__ self.gen.throw(type, value, traceback) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 157, in setup_context yield File "/usr/lib/python2.7/contextlib.py", line 35, in __exit__ self.gen.throw(type, value, traceback) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 128, in save_modules compat.reraise(new_cls, new_exc, tb) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 106, in save_modules yield saved File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 157, in setup_context yield File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 201, in run_setup DirectorySandbox(setup_dir).run(runner) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 231, in run return func() File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 200, in runner _execfile(setup_script, ns) File "/home/brett/temp/setupvenv/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 46, in _execfile exec(code, globals, locals) File "/tmp/easy_install-N5azww/python-daemon-2.0.3/setup.py", line 44, in <module> KeyError: u'version' ``` I think this is happening because python-daemon's setup.py relies on unicode_literals. It looks like when setuptools resolves requirements, it dynamically builds and executes setup.py files, preventing the __future__ import from having the desired effect. Hope this helps, -- Brett Smith _______________________________________________ python-daemon-devel mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/python-daemon-devel
