To clarify the above statement from Servilio: the setuptools_bzr 2.1 release on PyPI is itself affected by this, so this version cannot be installed. Full traceback here (with python2.4; python2.6 is similar):
$ bin/easy_install setuptools_bzr
Searching for setuptools-bzr
Reading http://pypi.python.org/simple/setuptools_bzr/
Reading https://launchpad.net/setuptoolsbzr
Best match: setuptools-bzr 2.1
Downloading http://pypi.python.org/packages/source/s/setuptools_bzr/setuptools_bzr-2.1.tar.gz#md5=f296133b7e3ffce1d6a2ad31787de0bf
Processing setuptools_bzr-2.1.tar.gz
Running setuptools_bzr-2.1/setup.py -q bdist_egg --dist-dir /var/folders/KA/KAXdMSFEHom0r8QU1jW-Jk+++TI/-Tmp-/easy_install-_FF58A/setuptools_bzr-2.1/egg-dist-tmp-Tu2Nrz
Traceback (most recent call last):
File "bin/easy_install", line 8, in ?
sys.exit(
File "/Users/mauritsvanrees/envs/py24/lib/python2.4/site-packages/distribute-0.6.24-py2.4.egg/setuptools/command/easy_install.py", line 1883, in main
with_ei_usage(lambda:
File "/Users/mauritsvanrees/envs/py24/lib/python2.4/site-packages/distribute-0.6.24-py2.4.egg/setuptools/command/easy_install.py", line 1864, in with_ei_usage
return f()
File "/Users/mauritsvanrees/envs/py24/lib/python2.4/site-packages/distribute-0.6.24-py2.4.egg/setuptools/command/easy_install.py", line 1887, in <lambda>
distclass=DistributionWithoutHelpCommands, **kw
File "/Users/mauritsvanrees/buildout/python/parts/opt/lib/python2.4/distutils/core.py", line 149, in setup
dist.run_commands()
File "/Users/mauritsvanrees/buildout/python/parts/opt/lib/python2.4/distutils/dist.py", line 946, in run_commands
self.run_command(cmd)
File "/Users/mauritsvanrees/buildout/python/parts/opt/lib/python2.4/distutils/dist.py", line 966, in run_command
cmd_obj.run()
File "/Users/mauritsvanrees/envs/py24/lib/python2.4/site-packages/distribute-0.6.24-py2.4.egg/setuptools/command/easy_install.py", line 349, in run
self.easy_install(spec, not self.no_deps)
File "/Users/mauritsvanrees/envs/py24/lib/python2.4/site-packages/distribute-0.6.24-py2.4.egg/setuptools/command/easy_install.py", line 589, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/Users/mauritsvanrees/envs/py24/lib/python2.4/site-packages/distribute-0.6.24-py2.4.egg/setuptools/command/easy_install.py", line 619, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/Users/mauritsvanrees/envs/py24/lib/python2.4/site-packages/distribute-0.6.24-py2.4.egg/setuptools/command/easy_install.py", line 809, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/Users/mauritsvanrees/envs/py24/lib/python2.4/site-packages/distribute-0.6.24-py2.4.egg/setuptools/command/easy_install.py", line 1086, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/Users/mauritsvanrees/envs/py24/lib/python2.4/site-packages/distribute-0.6.24-py2.4.egg/setuptools/command/easy_install.py", line 1075, in run_setup
run_setup(setup_script, args)
File "/Users/mauritsvanrees/envs/py24/lib/python2.4/site-packages/distribute-0.6.24-py2.4.egg/setuptools/sandbox.py", line 29, in run_setup
DirectorySandbox(setup_dir).run(
File "/Users/mauritsvanrees/envs/py24/lib/python2.4/site-packages/distribute-0.6.24-py2.4.egg/setuptools/sandbox.py", line 72, in run
return func()
File "/Users/mauritsvanrees/envs/py24/lib/python2.4/site-packages/distribute-0.6.24-py2.4.egg/setuptools/sandbox.py", line 32, in <lambda>
{'__file__':setup_script, '__name__':'__main__'}
File "setup.py", line 19, in ?
ImportError: No module named ez_setup
This is strange, because by default setuptools already adds all .py files, even when no extra helpers like setuptools-bzr are installed. Ah, no, only Python source files implied by the py_modules and packages options are included, as mentioned in the docs: http://docs.python.org/distutils/sourcedist.html#specifying-the-files-to-distribute
This snippet in the setup.py of setuptools-bzr would fix that for the setuptools-bzr package itself, by only importing ez_setup when needed:
try:
from setuptools import setup, find_packages
except ImportError:
from ez_setup import use_setuptools
use_setuptools()
from setuptools import setup, find_packages
It would seem that the setuptools-bzr release in PyPI should have included the ez_setup.py file though, as this file is included in the bzr code. Possibly the latest release has been made with a python version that erroneously did not have setuptools-bzr itself installed. I get an error on trunk btw, which might also have something to do with it, but I will open a separate ticket for that.
Note that in some packages I see a line in setup.py like this, which explicitly excludes ez_setup:
If things go wrong that might be an explanation as well, though it seems it has no effect because ez_setup is not included by default anyway: it is not a package or module.
BTW, as note for others: the not vcs dependent way of saying you want to include ez_setup.py in your source distribution would be to add a MANIFEST.in file with this line:
include ez_setup.py
To clarify the above statement from Servilio: the setuptools_bzr 2.1 release on PyPI is itself affected by this, so this version cannot be installed. Full traceback here (with python2.4; python2.6 is similar):
$ bin/easy_install setuptools_bzr pypi.python. org/simple/ setuptools_ bzr/ /launchpad. net/setuptoolsb zr pypi.python. org/packages/ source/ s/setuptools_ bzr/setuptools_ bzr-2.1. tar.gz# md5=f296133b7e3 ffce1d6a2ad3178 7de0bf bzr-2.1. tar.gz bzr-2.1/ setup.py -q bdist_egg --dist-dir /var/folders/ KA/KAXdMSFEHom0 r8QU1jW- Jk+++TI/ -Tmp-/easy_ install- _FF58A/ setuptools_ bzr-2.1/ egg-dist- tmp-Tu2Nrz mauritsvanrees/ envs/py24/ lib/python2. 4/site- packages/ distribute- 0.6.24- py2.4.egg/ setuptools/ command/ easy_install. py", line 1883, in main ei_usage( lambda: mauritsvanrees/ envs/py24/ lib/python2. 4/site- packages/ distribute- 0.6.24- py2.4.egg/ setuptools/ command/ easy_install. py", line 1864, in with_ei_usage mauritsvanrees/ envs/py24/ lib/python2. 4/site- packages/ distribute- 0.6.24- py2.4.egg/ setuptools/ command/ easy_install. py", line 1887, in <lambda> DistributionWit houtHelpCommand s, **kw mauritsvanrees/ buildout/ python/ parts/opt/ lib/python2. 4/distutils/ core.py" , line 149, in setup run_commands( ) mauritsvanrees/ buildout/ python/ parts/opt/ lib/python2. 4/distutils/ dist.py" , line 946, in run_commands run_command( cmd) mauritsvanrees/ buildout/ python/ parts/opt/ lib/python2. 4/distutils/ dist.py" , line 966, in run_command mauritsvanrees/ envs/py24/ lib/python2. 4/site- packages/ distribute- 0.6.24- py2.4.egg/ setuptools/ command/ easy_install. py", line 349, in run easy_install( spec, not self.no_deps) mauritsvanrees/ envs/py24/ lib/python2. 4/site- packages/ distribute- 0.6.24- py2.4.egg/ setuptools/ command/ easy_install. py", line 589, in easy_install item(spec, dist.location, tmpdir, deps) mauritsvanrees/ envs/py24/ lib/python2. 4/site- packages/ distribute- 0.6.24- py2.4.egg/ setuptools/ command/ easy_install. py", line 619, in install_item eggs(spec, download, tmpdir) mauritsvanrees/ envs/py24/ lib/python2. 4/site- packages/ distribute- 0.6.24- py2.4.egg/ setuptools/ command/ easy_install. py", line 809, in install_eggs and_install( setup_script, setup_base) mauritsvanrees/ envs/py24/ lib/python2. 4/site- packages/ distribute- 0.6.24- py2.4.egg/ setuptools/ command/ easy_install. py", line 1086, in build_and_install run_setup( setup_script, setup_base, args) mauritsvanrees/ envs/py24/ lib/python2. 4/site- packages/ distribute- 0.6.24- py2.4.egg/ setuptools/ command/ easy_install. py", line 1075, in run_setup setup(setup_ script, args) mauritsvanrees/ envs/py24/ lib/python2. 4/site- packages/ distribute- 0.6.24- py2.4.egg/ setuptools/ sandbox. py", line 29, in run_setup ndbox(setup_ dir).run( mauritsvanrees/ envs/py24/ lib/python2. 4/site- packages/ distribute- 0.6.24- py2.4.egg/ setuptools/ sandbox. py", line 72, in run mauritsvanrees/ envs/py24/ lib/python2. 4/site- packages/ distribute- 0.6.24- py2.4.egg/ setuptools/ sandbox. py", line 32, in <lambda> _file__ ':setup_ script, '__name_ _':'__main_ _'}
Searching for setuptools-bzr
Reading http://
Reading https:/
Best match: setuptools-bzr 2.1
Downloading http://
Processing setuptools_
Running setuptools_
Traceback (most recent call last):
File "bin/easy_install", line 8, in ?
sys.exit(
File "/Users/
with_
File "/Users/
return f()
File "/Users/
distclass=
File "/Users/
dist.
File "/Users/
self.
File "/Users/
cmd_obj.run()
File "/Users/
self.
File "/Users/
return self.install_
File "/Users/
dists = self.install_
File "/Users/
return self.build_
File "/Users/
self.
File "/Users/
run_
File "/Users/
DirectorySa
File "/Users/
return func()
File "/Users/
{'_
File "setup.py", line 19, in ?
ImportError: No module named ez_setup
This is strange, because by default setuptools already adds all .py files, even when no extra helpers like setuptools-bzr are installed. Ah, no, only Python source files implied by the py_modules and packages options are included, as mentioned in the docs: http:// docs.python. org/distutils/ sourcedist. html#specifying -the-files- to-distribute
This snippet in the setup.py of setuptools-bzr would fix that for the setuptools-bzr package itself, by only importing ez_setup when needed:
try: setuptools( )
from setuptools import setup, find_packages
except ImportError:
from ez_setup import use_setuptools
use_
from setuptools import setup, find_packages
It would seem that the setuptools-bzr release in PyPI should have included the ez_setup.py file though, as this file is included in the bzr code. Possibly the latest release has been made with a python version that erroneously did not have setuptools-bzr itself installed. I get an error on trunk btw, which might also have something to do with it, but I will open a separate ticket for that.
Note that in some packages I see a line in setup.py like this, which explicitly excludes ez_setup:
packages= find_packages( exclude= ['ez_setup' , 'examples', 'tests'])
If things go wrong that might be an explanation as well, though it seems it has no effect because ez_setup is not included by default anyway: it is not a package or module.
BTW, as note for others: the not vcs dependent way of saying you want to include ez_setup.py in your source distribution would be to add a MANIFEST.in file with this line:
include ez_setup.py