psycopg2 monkey-patching of lib2to3.refactor
(setup.py
line 65) is causing any module that rely on
build_py_2to3 to fail if it installs after
psycopg2 (i.e. as dependencies). To demonstrate this
setup.py will fails under Python 3 (BeautifulSoup4 as
of 4.1.3 is using build_py_2to3, WebTest2 has BS4 as
dependencies):
from setuptools import setup, find_packages
setup(name='foomod',
version='0.0',
description='Test',
long_description='Just a test',
packages=find_packages(),
install_requires=['psycopg2==2.4.6', 'webtest==2.0.2'])
with these error message:
Traceback (most recent call last):
File "setup.py", line 13, in <module>
install_requires=['psycopg2==2.4.6', 'webtest==2.0.2'])
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/dist.py", line 917, in run_commands
self.run_command(cmd)
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/dist.py", line 936, in run_command
cmd_obj.run()
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/command/develop.py", line 27, in run
self.install_for_development()
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/command/develop.py", line 129, in install_for_development
self.process_distribution(None, self.dist, not self.no_deps)
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/command/easy_install.py", line 682, in process_distribution
[requirement], self.local_index, self.easy_install
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/pkg_resources.py", line 596, in resolve
dist = best[req.key] = env.best_match(req, ws, installer)
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/pkg_resources.py", line 842, in best_match
return self.obtain(req, installer) # try and download/install
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/pkg_resources.py", line 854, in obtain
return installer(requirement)
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/command/easy_install.py", line 598, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/command/easy_install.py", line 628, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/command/easy_install.py", line 823, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/command/easy_install.py", line 1103, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/command/easy_install.py", line 1089, in run_setup
run_setup(setup_script, args)
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/sandbox.py", line 31, in run_setup
lambda: exec(compile(open(
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/sandbox.py", line 79, in run
return func()
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/sandbox.py", line 34, in <lambda>
{'__file__':setup_script, '__name__':'__main__'})
File "setup.py", line 27, in <module>
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/dist.py", line 917, in run_commands
self.run_command(cmd)
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/dist.py", line 936, in run_command
cmd_obj.run()
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/command/bdist_egg.py", line 179, in run
cmd = self.call_command('install_lib', warn_dir=0)
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/command/bdist_egg.py", line 166, in call_command
self.run_command(cmdname)
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/dist.py", line 936, in run_command
cmd_obj.run()
File "/Users/sirn/.virtualenvs/foo/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/setuptools/command/install_lib.py", line 20, in run
self.build()
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/command/install_lib.py", line 105, in build
self.run_command('build_py')
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/dist.py", line 936, in run_command
cmd_obj.run()
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/command/build_py.py", line 405, in run
self.run_2to3(self.updated_files)
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/util.py", line 573, in run_2to3
return run_2to3(files, self.fixer_names, self.options, self.explicit)
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/distutils/util.py", line 520, in run_2to3
r = DistutilsRefactoringTool(fixer_names, options=options)
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/lib2to3/refactor.py", line 210, in __init__
self.pre_order, self.post_order = self.get_fixers()
File "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/lib2to3/refactor.py", line 245, in get_fixers
mod = __import__(fix_mod_path, {}, {}, ["*"])
ImportError: No module named 'fix_b'
I've been able to reproduce this under Python 3.3 (Distribute
0.6.31) on Mac OS X and Python 3.2 (Distribute 0.6.34) on Ubuntu.
Installation went through without any problems on both platnforms
if I remove psycopg2 from install_requires.