-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
W/o setuptools, "setup.py install" skips zope/interface/common/ #13
Comments
ZI 3.6.0 and Ubuntu 12.10 were both quite a while ago. I haven't seen this in some time; all my virtualenvs wth ZI 4+ and Ubuntu 14+ have been working flawlessly and I make new ones just about every day. Someone else will have to attempt to verify that this is still an issue. |
Thank you for remembering though @tseaver ! |
I think the issue only occurs now when you don't have setuptools installed. So, to reproduce::
If you just create a virtualenv normally and the |
Do we want to support setuptools-less installs? You need setuptools for zope.* namespace packages on Python < 3.3 anyway. |
BTW #14 is a duplicate of this, and has a patch. |
@mgedmin we do the
|
I think some of my users are running into this: dedupeio/dedupe#268 But I do have setuptools. https://github.com/datamade/dedupe/blob/master/setup.py#L5-L24 |
To the question @mgedmin raised: is it still worth supporting setuptools-less installs? Is there anyone still trying to install with just distutils?
|
Huh, from the patch mentioned in #14: @@ -121,7 +122,13 @@
"Topic :: Software Development :: Libraries :: Python Modules",
],
- packages = ['zope', 'zope.interface', 'zope.interface.tests'],
+ packages = [
+ 'zope',
+ 'zope.interface',
+ 'zope.interface.tests',
+ 'zope.interface.common',
+ 'zope.interface.common.tests',
+ ],
package_dir = {'': 'src'},
cmdclass = {'build_ext': optional_build_ext,
}, I see no reason to explicitly enumerate half of zope.interface subpackages in the setup.py. Let's either apply that or use |
Good point. There's also now this lovely block where if importing setuptools fails, the C optimizations don't get built: try:
from setuptools import setup, Extension, Feature
except ImportError:
# do we need to support plain distutils for building when even
# the package itself requires setuptools for installing?
from distutils.core import setup, Extension
extra = {}
else:
# Define the C extension...
extra = dict(... So I'm +1 to going all-in on setuptools. I can make a new PR if desired. |
Add missing dependency. 4.3.1 (2016-08-31) ------------------ - Support Components subclasses that are not hashable. (zopefoundation/zope.interface#53) 4.3.0 (2016-08-31) ------------------ - Add the ability to sort the objects returned by ``implementedBy``. This is compatible with the way interface classes sort so they can be used together in ordered containers like BTrees. (zopefoundation/zope.interface#42) - Make ``setuptools`` a hard dependency of ``setup.py``. (zopefoundation/zope.interface#13) - Change a linear algorithm (O(n)) in ``Components.registerUtility`` and ``Components.unregisterUtility`` into a dictionary lookup (O(1)) for hashable components. This substantially improves the time taken to manipulate utilities in large registries at the cost of some additional memory usage. (zopefoundation/zope.interface#46)
In https://bugs.launchpad.net/zope.interface/+bug/611362, @exarkun reported:
and supplied a patch:
https://bugs.launchpad.net/zope.interface/+bug/611362/+attachment/1471651/+files/setup.patch
I followed up:
@glyph followed up:
The text was updated successfully, but these errors were encountered: