Multi-level package namespaces break with Setuptools 38
See original GitHub issueMulti-level packages imported via setup.py develop
work in Setuptools 37, but fail in Setuptools 38.x due to missing __init__.py
in the upper levels of the namespace.
For example, after installing protobuf
, a simple import google.protobuf.message
should work but doesnβt. It can be hacked around by touch protobuf-3.5.0.post1-py2.7.egg/google/__init__.py
in site-packages
.
Setuptools 37.0
~/tmp/s38.py:
from setuptools import setup
setup(
name="s38",
version="0.0.1",
install_requires=['protobuf', 'zope.deprecation', 'pastedeploy']
)
$ virtualenv --no-setuptools -p python2.7 setuptools37
Running virtualenv with interpreter /usr/local/bin/python2.7
New python executable in /Users/georgevreilly/setuptools37/bin/python2.7
Also creating executable in /Users/georgevreilly/setuptools37/bin/python
Installing pip, wheel...done.
$ source ./setuptools37/bin/activate
(setuptools37) $ pip install 'setuptools==37.0'
Collecting setuptools==37.0
Using cached setuptools-37.0.0-py2.py3-none-any.whl
Installing collected packages: setuptools
Successfully installed setuptools-37.0.0
(setuptools37) $ python -c 'import setuptools; print(setuptools.__version__)'
37.0.0
(setuptools37) $ python ~/tmp/s38.py develop
running develop
running egg_info
writing requirements to s38.egg-info/requires.txt
writing s38.egg-info/PKG-INFO
writing top-level names to s38.egg-info/top_level.txt
writing dependency_links to s38.egg-info/dependency_links.txt
reading manifest file 's38.egg-info/SOURCES.txt'
writing manifest file 's38.egg-info/SOURCES.txt'
running build_ext
Creating /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/s38.egg-link (link to .)
Adding s38 0.0.1 to easy-install.pth file
Installed /Users/georgevreilly
Processing dependencies for s38==0.0.1
Searching for pastedeploy
Reading https://pypi.python.org/simple/pastedeploy/
Downloading https://pypi.python.org/packages/0f/90/8e20cdae206c543ea10793cbf4136eb9a8b3f417e04e40a29d72d9922cbd/PasteDeploy-1.5.2.tar.gz#md5=352b7205c78c8de4987578d19431af3b
Best match: PasteDeploy 1.5.2
Processing PasteDeploy-1.5.2.tar.gz
Writing /var/folders/2t/tx6brjtj21vfs98xcmfq1jvr0000gn/T/easy_install-TZTFFm/PasteDeploy-1.5.2/setup.cfg
Running PasteDeploy-1.5.2/setup.py -q bdist_egg --dist-dir /var/folders/2t/tx6brjtj21vfs98xcmfq1jvr0000gn/T/easy_install-TZTFFm/PasteDeploy-1.5.2/egg-dist-tmp-a2YwV8
creating /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg
Extracting PasteDeploy-1.5.2-py2.7.egg to /Users/georgevreilly/setuptools37/lib/python2.7/site-packages
Adding PasteDeploy 1.5.2 to easy-install.pth file
Installed /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg
Searching for zope.deprecation
Reading https://pypi.python.org/simple/zope.deprecation/
Downloading https://pypi.python.org/packages/a1/18/2dc5e6bfe64fdc3b79411b67464c55bb0b43b127051a20f7f492ab767758/zope.deprecation-4.3.0.tar.gz#md5=2166b2cb7e0e96a21104e6f8f9b696bb
Best match: zope.deprecation 4.3.0
Processing zope.deprecation-4.3.0.tar.gz
Writing /var/folders/2t/tx6brjtj21vfs98xcmfq1jvr0000gn/T/easy_install-hWzALQ/zope.deprecation-4.3.0/setup.cfg
Running zope.deprecation-4.3.0/setup.py -q bdist_egg --dist-dir /var/folders/2t/tx6brjtj21vfs98xcmfq1jvr0000gn/T/easy_install-hWzALQ/zope.deprecation-4.3.0/egg-dist-tmp-hANPOl
warning: no previously-included files matching '*.pyc' found anywhere in distribution
creating /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/zope.deprecation-4.3.0-py2.7.egg
Extracting zope.deprecation-4.3.0-py2.7.egg to /Users/georgevreilly/setuptools37/lib/python2.7/site-packages
Adding zope.deprecation 4.3.0 to easy-install.pth file
Installed /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/zope.deprecation-4.3.0-py2.7.egg
Searching for protobuf
Reading https://pypi.python.org/simple/protobuf/
Downloading https://pypi.python.org/packages/e9/96/61a46b3cb4b25e4eb1b685266a98463f4a1887b7d4bf8142986c443215d2/protobuf-3.5.0.post1-py2.7.egg#md5=17755f6139c1d85aa75d1c4d77d04cf5
Best match: protobuf 3.5.0.post1
Processing protobuf-3.5.0.post1-py2.7.egg
creating /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/protobuf-3.5.0.post1-py2.7.egg
Extracting protobuf-3.5.0.post1-py2.7.egg to /Users/georgevreilly/setuptools37/lib/python2.7/site-packages
Adding protobuf 3.5.0.post1 to easy-install.pth file
Installed /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/protobuf-3.5.0.post1-py2.7.egg
Searching for six>=1.9
Reading https://pypi.python.org/simple/six/
Downloading https://pypi.python.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe/six-1.11.0.tar.gz#md5=d12789f9baf7e9fb2524c0c64f1773f8
Best match: six 1.11.0
Processing six-1.11.0.tar.gz
Writing /var/folders/2t/tx6brjtj21vfs98xcmfq1jvr0000gn/T/easy_install-84SWpD/six-1.11.0/setup.cfg
Running six-1.11.0/setup.py -q bdist_egg --dist-dir /var/folders/2t/tx6brjtj21vfs98xcmfq1jvr0000gn/T/easy_install-84SWpD/six-1.11.0/egg-dist-tmp-Kh1NXs
no previously-included directories found matching 'documentation/_build'
zip_safe flag not set; analyzing archive contents...
six: module references __path__
creating /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/six-1.11.0-py2.7.egg
Extracting six-1.11.0-py2.7.egg to /Users/georgevreilly/setuptools37/lib/python2.7/site-packages
Adding six 1.11.0 to easy-install.pth file
Installed /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/six-1.11.0-py2.7.egg
Searching for setuptools==37.0.0
Best match: setuptools 37.0.0
Adding setuptools 37.0.0 to easy-install.pth file
Installing easy_install script to /Users/georgevreilly/setuptools37/bin
Installing easy_install-3.6 script to /Users/georgevreilly/setuptools37/bin
Using /Users/georgevreilly/setuptools37/lib/python2.7/site-packages
Finished processing dependencies for s38==0.0.1
(setuptools37) $ lssitepackages
PasteDeploy-1.5.2-py2.7.egg pkg_resources six-1.11.0-py2.7.egg
easy-install.pth protobuf-3.5.0.post1-py2.7.egg wheel
easy_install.py s38.egg-link wheel-0.30.0.dist-info
easy_install.pyc setuptools zope.deprecation-4.3.0-py2.7.egg
pip setuptools-37.0.0.dist-info
pip-9.0.1.dist-info setuptools.pth
(setuptools37) $ python -c 'from paste.deploy.loadwsgi import AttrDict' && echo yes
yes
(setuptools37) $ python -c 'import google.protobuf.message' && echo yes
yes
(setuptools37) $ python -c 'from zope.deprecation import deprecated' && echo yes
yes
Setuptools 38.2.1
$ virtualenv -p python2.7 setuptools38b
Running virtualenv with interpreter /usr/local/bin/python2.7
New python executable in /Users/georgevreilly/setuptools38b/bin/python2.7
Also creating executable in /Users/georgevreilly/setuptools38b/bin/python
Installing setuptools, pip, wheel...done.
$ source setuptools38b/bin/activate
(setuptools38b) $ python -c 'import setuptools; print(setuptools.__version__)'
38.2.1
(setuptools38b) $ python ~/tmp/s38.py develop
running develop
running egg_info
creating s38.egg-info
writing requirements to s38.egg-info/requires.txt
writing s38.egg-info/PKG-INFO
writing top-level names to s38.egg-info/top_level.txt
writing dependency_links to s38.egg-info/dependency_links.txt
writing manifest file 's38.egg-info/SOURCES.txt'
reading manifest file 's38.egg-info/SOURCES.txt'
writing manifest file 's38.egg-info/SOURCES.txt'
running build_ext
Creating /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/s38.egg-link (link to .)
Adding s38 0.0.1 to easy-install.pth file
Installed /Users/georgevreilly
Processing dependencies for s38==0.0.1
Searching for pastedeploy
Reading https://pypi.python.org/simple/pastedeploy/
Downloading https://pypi.python.org/packages/31/28/51201a54aeecbd02eff767d17050b302f6fd98fdfecb4e3f4c9301ba6ef8/PasteDeploy-1.5.2-py2.py3-none-any.whl#md5=1134e25af0d52190abd9f8d7c6867f9e
Best match: PasteDeploy 1.5.2
Processing PasteDeploy-1.5.2-py2.py3-none-any.whl
Installing PasteDeploy-1.5.2-py2.py3-none-any.whl to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages
writing requirements to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg/EGG-INFO/requires.txt
Adding PasteDeploy 1.5.2 to easy-install.pth file
Installed /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg
Searching for zope.deprecation
Reading https://pypi.python.org/simple/zope.deprecation/
Downloading https://pypi.python.org/packages/ee/33/625098914ec59b3006adf2cdf44a721e9671f4836af9eeb8cbe14e485954/zope.deprecation-4.3.0-py2.py3-none-any.whl#md5=fb3b24ef645dcfaff8ab3028da7209f2
Best match: zope.deprecation 4.3.0
Processing zope.deprecation-4.3.0-py2.py3-none-any.whl
Installing zope.deprecation-4.3.0-py2.py3-none-any.whl to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages
writing requirements to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/zope.deprecation-4.3.0-py2.7.egg/EGG-INFO/requires.txt
Adding zope.deprecation 4.3.0 to easy-install.pth file
Installed /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/zope.deprecation-4.3.0-py2.7.egg
Searching for protobuf
Reading https://pypi.python.org/simple/protobuf/
Downloading https://pypi.python.org/packages/74/34/52e4fcc023f36ba8c408765032e6b9052eff115b01a17e3d2af48fac3a97/protobuf-3.5.0.post1-py2.py3-none-any.whl#md5=74c4b42404b6f55348c280dc511b95c1
Best match: protobuf 3.5.0.post1
Processing protobuf-3.5.0.post1-py2.py3-none-any.whl
Installing protobuf-3.5.0.post1-py2.py3-none-any.whl to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages
writing requirements to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/protobuf-3.5.0.post1-py2.7.egg/EGG-INFO/requires.txt
Adding protobuf 3.5.0.post1 to easy-install.pth file
Installed /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/protobuf-3.5.0.post1-py2.7.egg
Searching for six>=1.9
Reading https://pypi.python.org/simple/six/
Downloading https://pypi.python.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl#md5=866ab722be6bdfed6830f3179af65468
Best match: six 1.11.0
Processing six-1.11.0-py2.py3-none-any.whl
Installing six-1.11.0-py2.py3-none-any.whl to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages
Adding six 1.11.0 to easy-install.pth file
Installed /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/six-1.11.0-py2.7.egg
Searching for setuptools==38.2.1
Best match: setuptools 38.2.1
Adding setuptools 38.2.1 to easy-install.pth file
Installing easy_install script to /Users/georgevreilly/setuptools38b/bin
Installing easy_install-3.6 script to /Users/georgevreilly/setuptools38b/bin
Using /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages
Finished processing dependencies for s38==0.0.1
(setuptools38b) $ lssitepackages
PasteDeploy-1.5.2-py2.7.egg pkg_resources six-1.11.0-py2.7.egg
easy-install.pth protobuf-3.5.0.post1-py2.7.egg wheel
easy_install.py s38.egg-link wheel-0.30.0.dist-info
easy_install.pyc setuptools zope.deprecation-4.3.0-py2.7.egg
pip setuptools-38.2.1.dist-info
pip-9.0.1.dist-info setuptools.pth
(setuptools38b) $ python -c 'from paste.deploy.loadwsgi import AttrDict' && echo yes
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named paste.deploy.loadwsgi
(setuptools38b) $ python -c 'import google.protobuf.message' && echo yes
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named google.protobuf.message
(setuptools38b) $ python -c 'from zope.deprecation import deprecated' && echo yes
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named zope.deprecation
Diffing the Trees
(setuptools38b) $ diff -u <(tree setuptools37/lib/python2.7/site-packages) <(tree setuptools38b/lib/python2.7/site-packages)
--- /dev/fd/63 2017-11-26 19:06:51.000000000 -0800
+++ /dev/fd/62 2017-11-26 19:06:51.000000000 -0800
@@ -1,28 +1,23 @@
-setuptools37/lib/python2.7/site-packages
+setuptools38b/lib/python2.7/site-packages
βββ PasteDeploy-1.5.2-py2.7.egg
βΒ Β βββ EGG-INFO
+βΒ Β βΒ Β βββ DESCRIPTION.rst
βΒ Β βΒ Β βββ PKG-INFO
-βΒ Β βΒ Β βββ SOURCES.txt
-βΒ Β βΒ Β βββ dependency_links.txt
+βΒ Β βΒ Β βββ RECORD
+βΒ Β βΒ Β βββ WHEEL
βΒ Β βΒ Β βββ entry_points.txt
βΒ Β βΒ Β βββ namespace_packages.txt
-βΒ Β βΒ Β βββ not-zip-safe
+βΒ Β βΒ Β βββ pydist.json
βΒ Β βΒ Β βββ requires.txt
βΒ Β βΒ Β βββ top_level.txt
+βΒ Β βββ PasteDeploy-1.5.2-py2.6-nspkg.pth
βΒ Β βββ paste
-βΒ Β βββ __init__.py
-βΒ Β βββ __init__.pyc
βΒ Β βββ deploy
βΒ Β βββ __init__.py
-βΒ Β βββ __init__.pyc
βΒ Β βββ compat.py
-βΒ Β βββ compat.pyc
βΒ Β βββ config.py
-βΒ Β βββ config.pyc
βΒ Β βββ converters.py
-βΒ Β βββ converters.pyc
βΒ Β βββ loadwsgi.py
-βΒ Β βββ loadwsgi.pyc
βΒ Β βββ paster_templates
βΒ Β βΒ Β βββ paste_deploy
βΒ Β βΒ Β βββ +package+
@@ -31,9 +26,7 @@
βΒ Β βΒ Β βββ docs
βΒ Β βΒ Β βββ devel_config.ini_tmpl
βΒ Β βββ paster_templates.py
-βΒ Β βββ paster_templates.pyc
-βΒ Β βββ util.py
-βΒ Β βββ util.pyc
+βΒ Β βββ util.py
βββ easy-install.pth
βββ easy_install.py
βββ easy_install.pyc
@@ -607,210 +600,116 @@
βΒ Β βββ py31compat.pyc
βββ protobuf-3.5.0.post1-py2.7.egg
βΒ Β βββ EGG-INFO
+βΒ Β βΒ Β βββ DESCRIPTION.rst
βΒ Β βΒ Β βββ PKG-INFO
-βΒ Β βΒ Β βββ SOURCES.txt
-βΒ Β βΒ Β βββ dependency_links.txt
+βΒ Β βΒ Β βββ RECORD
+βΒ Β βΒ Β βββ WHEEL
+βΒ Β βΒ Β βββ metadata.json
βΒ Β βΒ Β βββ namespace_packages.txt
-βΒ Β βΒ Β βββ not-zip-safe
βΒ Β βΒ Β βββ requires.txt
βΒ Β βΒ Β βββ top_level.txt
-βΒ Β βββ google
-βΒ Β βββ __init__.py
-βΒ Β βββ __init__.pyc
-βΒ Β βββ protobuf
-βΒ Β βββ __init__.py
-βΒ Β βββ __init__.pyc
-βΒ Β βββ any_pb2.py
-βΒ Β βββ any_pb2.pyc
-βΒ Β βββ any_test_pb2.py
-βΒ Β βββ any_test_pb2.pyc
-βΒ Β βββ api_pb2.py
-βΒ Β βββ api_pb2.pyc
-βΒ Β βββ compiler
-βΒ Β βΒ Β βββ __init__.py
-βΒ Β βΒ Β βββ __init__.pyc
-βΒ Β βΒ Β βββ plugin_pb2.py
-βΒ Β βΒ Β βββ plugin_pb2.pyc
-βΒ Β βββ descriptor.py
-βΒ Β βββ descriptor.pyc
-βΒ Β βββ descriptor_database.py
-βΒ Β βββ descriptor_database.pyc
-βΒ Β βββ descriptor_pb2.py
-βΒ Β βββ descriptor_pb2.pyc
-βΒ Β βββ descriptor_pool.py
-βΒ Β βββ descriptor_pool.pyc
-βΒ Β βββ duration_pb2.py
-βΒ Β βββ duration_pb2.pyc
-βΒ Β βββ empty_pb2.py
-βΒ Β βββ empty_pb2.pyc
-βΒ Β βββ field_mask_pb2.py
-βΒ Β βββ field_mask_pb2.pyc
-βΒ Β βββ internal
-βΒ Β βΒ Β βββ __init__.py
-βΒ Β βΒ Β βββ __init__.pyc
-βΒ Β βΒ Β βββ _parameterized.py
-βΒ Β βΒ Β βββ _parameterized.pyc
-βΒ Β βΒ Β βββ any_test_pb2.py
-βΒ Β βΒ Β βββ any_test_pb2.pyc
-βΒ Β βΒ Β βββ api_implementation.py
-βΒ Β βΒ Β βββ api_implementation.pyc
-βΒ Β βΒ Β βββ containers.py
-βΒ Β βΒ Β βββ containers.pyc
-βΒ Β βΒ Β βββ decoder.py
-βΒ Β βΒ Β βββ decoder.pyc
-βΒ Β βΒ Β βββ descriptor_database_test.py
-βΒ Β βΒ Β βββ descriptor_database_test.pyc
-βΒ Β βΒ Β βββ descriptor_pool_test.py
-βΒ Β βΒ Β βββ descriptor_pool_test.pyc
-βΒ Β βΒ Β βββ descriptor_pool_test1_pb2.py
-βΒ Β βΒ Β βββ descriptor_pool_test1_pb2.pyc
-βΒ Β βΒ Β βββ descriptor_pool_test2_pb2.py
-βΒ Β βΒ Β βββ descriptor_pool_test2_pb2.pyc
-βΒ Β βΒ Β βββ descriptor_test.py
-βΒ Β βΒ Β βββ descriptor_test.pyc
-βΒ Β βΒ Β βββ encoder.py
-βΒ Β βΒ Β βββ encoder.pyc
-βΒ Β βΒ Β βββ enum_type_wrapper.py
-βΒ Β βΒ Β βββ enum_type_wrapper.pyc
-βΒ Β βΒ Β βββ factory_test1_pb2.py
-βΒ Β βΒ Β βββ factory_test1_pb2.pyc
-βΒ Β βΒ Β βββ factory_test2_pb2.py
-βΒ Β βΒ Β βββ factory_test2_pb2.pyc
-βΒ Β βΒ Β βββ file_options_test_pb2.py
-βΒ Β βΒ Β βββ file_options_test_pb2.pyc
-βΒ Β βΒ Β βββ generator_test.py
-βΒ Β βΒ Β βββ generator_test.pyc
-βΒ Β βΒ Β βββ import_test_package
-βΒ Β βΒ Β βΒ Β βββ __init__.py
-βΒ Β βΒ Β βΒ Β βββ __init__.pyc
-βΒ Β βΒ Β βΒ Β βββ inner_pb2.py
-βΒ Β βΒ Β βΒ Β βββ inner_pb2.pyc
-βΒ Β βΒ Β βΒ Β βββ outer_pb2.py
-βΒ Β βΒ Β βΒ Β βββ outer_pb2.pyc
-βΒ Β βΒ Β βββ json_format_test.py
-βΒ Β βΒ Β βββ json_format_test.pyc
-βΒ Β βΒ Β βββ message_factory_test.py
-βΒ Β βΒ Β βββ message_factory_test.pyc
-βΒ Β βΒ Β βββ message_listener.py
-βΒ Β βΒ Β βββ message_listener.pyc
-βΒ Β βΒ Β βββ message_set_extensions_pb2.py
-βΒ Β βΒ Β βββ message_set_extensions_pb2.pyc
-βΒ Β βΒ Β βββ message_test.py
-βΒ Β βΒ Β βββ message_test.pyc
-βΒ Β βΒ Β βββ missing_enum_values_pb2.py
-βΒ Β βΒ Β βββ missing_enum_values_pb2.pyc
-βΒ Β βΒ Β βββ more_extensions_dynamic_pb2.py
-βΒ Β βΒ Β βββ more_extensions_dynamic_pb2.pyc
-βΒ Β βΒ Β βββ more_extensions_pb2.py
-βΒ Β βΒ Β βββ more_extensions_pb2.pyc
-βΒ Β βΒ Β βββ more_messages_pb2.py
-βΒ Β βΒ Β βββ more_messages_pb2.pyc
-βΒ Β βΒ Β βββ packed_field_test_pb2.py
-βΒ Β βΒ Β βββ packed_field_test_pb2.pyc
-βΒ Β βΒ Β βββ proto_builder_test.py
-βΒ Β βΒ Β βββ proto_builder_test.pyc
-βΒ Β βΒ Β βββ python_message.py
-βΒ Β βΒ Β βββ python_message.pyc
-βΒ Β βΒ Β βββ reflection_test.py
-βΒ Β βΒ Β βββ reflection_test.pyc
-βΒ Β βΒ Β βββ service_reflection_test.py
-βΒ Β βΒ Β βββ service_reflection_test.pyc
-βΒ Β βΒ Β βββ symbol_database_test.py
-βΒ Β βΒ Β βββ symbol_database_test.pyc
-βΒ Β βΒ Β βββ test_bad_identifiers_pb2.py
-βΒ Β βΒ Β βββ test_bad_identifiers_pb2.pyc
-βΒ Β βΒ Β βββ test_util.py
-βΒ Β βΒ Β βββ test_util.pyc
-βΒ Β βΒ Β βββ testing_refleaks.py
-βΒ Β βΒ Β βββ testing_refleaks.pyc
-βΒ Β βΒ Β βββ text_encoding_test.py
-βΒ Β βΒ Β βββ text_encoding_test.pyc
-βΒ Β βΒ Β βββ text_format_test.py
-βΒ Β βΒ Β βββ text_format_test.pyc
-βΒ Β βΒ Β βββ type_checkers.py
-βΒ Β βΒ Β βββ type_checkers.pyc
-βΒ Β βΒ Β βββ unknown_fields_test.py
-βΒ Β βΒ Β βββ unknown_fields_test.pyc
-βΒ Β βΒ Β βββ well_known_types.py
-βΒ Β βΒ Β βββ well_known_types.pyc
-βΒ Β βΒ Β βββ well_known_types_test.py
-βΒ Β βΒ Β βββ well_known_types_test.pyc
-βΒ Β βΒ Β βββ wire_format.py
-βΒ Β βΒ Β βββ wire_format.pyc
-βΒ Β βΒ Β βββ wire_format_test.py
-βΒ Β βΒ Β βββ wire_format_test.pyc
-βΒ Β βββ json_format.py
-βΒ Β βββ json_format.pyc
-βΒ Β βββ map_proto2_unittest_pb2.py
-βΒ Β βββ map_proto2_unittest_pb2.pyc
-βΒ Β βββ map_unittest_pb2.py
-βΒ Β βββ map_unittest_pb2.pyc
-βΒ Β βββ message.py
-βΒ Β βββ message.pyc
-βΒ Β βββ message_factory.py
-βΒ Β βββ message_factory.pyc
-βΒ Β βββ proto_builder.py
-βΒ Β βββ proto_builder.pyc
-βΒ Β βββ pyext
-βΒ Β βΒ Β βββ __init__.py
-βΒ Β βΒ Β βββ __init__.pyc
-βΒ Β βΒ Β βββ cpp_message.py
-βΒ Β βΒ Β βββ cpp_message.pyc
-βΒ Β βΒ Β βββ python_pb2.py
-βΒ Β βΒ Β βββ python_pb2.pyc
-βΒ Β βββ reflection.py
-βΒ Β βββ reflection.pyc
-βΒ Β βββ service.py
-βΒ Β βββ service.pyc
-βΒ Β βββ service_reflection.py
-βΒ Β βββ service_reflection.pyc
-βΒ Β βββ source_context_pb2.py
-βΒ Β βββ source_context_pb2.pyc
-βΒ Β βββ struct_pb2.py
-βΒ Β βββ struct_pb2.pyc
-βΒ Β βββ symbol_database.py
-βΒ Β βββ symbol_database.pyc
-βΒ Β βββ test_messages_proto2_pb2.py
-βΒ Β βββ test_messages_proto2_pb2.pyc
-βΒ Β βββ test_messages_proto3_pb2.py
-βΒ Β βββ test_messages_proto3_pb2.pyc
-βΒ Β βββ text_encoding.py
-βΒ Β βββ text_encoding.pyc
-βΒ Β βββ text_format.py
-βΒ Β βββ text_format.pyc
-βΒ Β βββ timestamp_pb2.py
-βΒ Β βββ timestamp_pb2.pyc
-βΒ Β βββ type_pb2.py
-βΒ Β βββ type_pb2.pyc
-βΒ Β βββ unittest_arena_pb2.py
-βΒ Β βββ unittest_arena_pb2.pyc
-βΒ Β βββ unittest_custom_options_pb2.py
-βΒ Β βββ unittest_custom_options_pb2.pyc
-βΒ Β βββ unittest_import_pb2.py
-βΒ Β βββ unittest_import_pb2.pyc
-βΒ Β βββ unittest_import_public_pb2.py
-βΒ Β βββ unittest_import_public_pb2.pyc
-βΒ Β βββ unittest_mset_pb2.py
-βΒ Β βββ unittest_mset_pb2.pyc
-βΒ Β βββ unittest_mset_wire_format_pb2.py
-βΒ Β βββ unittest_mset_wire_format_pb2.pyc
-βΒ Β βββ unittest_no_arena_import_pb2.py
-βΒ Β βββ unittest_no_arena_import_pb2.pyc
-βΒ Β βββ unittest_no_arena_pb2.py
-βΒ Β βββ unittest_no_arena_pb2.pyc
-βΒ Β βββ unittest_no_generic_services_pb2.py
-βΒ Β βββ unittest_no_generic_services_pb2.pyc
-βΒ Β βββ unittest_pb2.py
-βΒ Β βββ unittest_pb2.pyc
-βΒ Β βββ unittest_proto3_arena_pb2.py
-βΒ Β βββ unittest_proto3_arena_pb2.pyc
-βΒ Β βββ util
-βΒ Β βΒ Β βββ __init__.py
-βΒ Β βΒ Β βββ __init__.pyc
-βΒ Β βΒ Β βββ json_format_proto3_pb2.py
-βΒ Β βΒ Β βββ json_format_proto3_pb2.pyc
-βΒ Β βββ wrappers_pb2.py
-βΒ Β βββ wrappers_pb2.pyc
+βΒ Β βββ google
+βΒ Β βΒ Β βββ protobuf
+βΒ Β βΒ Β βββ __init__.py
+βΒ Β βΒ Β βββ any_pb2.py
+βΒ Β βΒ Β βββ any_test_pb2.py
+βΒ Β βΒ Β βββ api_pb2.py
+βΒ Β βΒ Β βββ compiler
+βΒ Β βΒ Β βΒ Β βββ __init__.py
+βΒ Β βΒ Β βΒ Β βββ plugin_pb2.py
+βΒ Β βΒ Β βββ descriptor.py
+βΒ Β βΒ Β βββ descriptor_database.py
+βΒ Β βΒ Β βββ descriptor_pb2.py
+βΒ Β βΒ Β βββ descriptor_pool.py
+βΒ Β βΒ Β βββ duration_pb2.py
+βΒ Β βΒ Β βββ empty_pb2.py
+βΒ Β βΒ Β βββ field_mask_pb2.py
+βΒ Β βΒ Β βββ internal
+βΒ Β βΒ Β βΒ Β βββ __init__.py
+βΒ Β βΒ Β βΒ Β βββ _parameterized.py
+βΒ Β βΒ Β βΒ Β βββ any_test_pb2.py
+βΒ Β βΒ Β βΒ Β βββ api_implementation.py
+βΒ Β βΒ Β βΒ Β βββ containers.py
+βΒ Β βΒ Β βΒ Β βββ decoder.py
+βΒ Β βΒ Β βΒ Β βββ descriptor_database_test.py
+βΒ Β βΒ Β βΒ Β βββ descriptor_pool_test.py
+βΒ Β βΒ Β βΒ Β βββ descriptor_pool_test1_pb2.py
+βΒ Β βΒ Β βΒ Β βββ descriptor_pool_test2_pb2.py
+βΒ Β βΒ Β βΒ Β βββ descriptor_test.py
+βΒ Β βΒ Β βΒ Β βββ encoder.py
+βΒ Β βΒ Β βΒ Β βββ enum_type_wrapper.py
+βΒ Β βΒ Β βΒ Β βββ factory_test1_pb2.py
+βΒ Β βΒ Β βΒ Β βββ factory_test2_pb2.py
+βΒ Β βΒ Β βΒ Β βββ file_options_test_pb2.py
+βΒ Β βΒ Β βΒ Β βββ generator_test.py
+βΒ Β βΒ Β βΒ Β βββ import_test_package
+βΒ Β βΒ Β βΒ Β βΒ Β βββ __init__.py
+βΒ Β βΒ Β βΒ Β βΒ Β βββ inner_pb2.py
+βΒ Β βΒ Β βΒ Β βΒ Β βββ outer_pb2.py
+βΒ Β βΒ Β βΒ Β βββ json_format_test.py
+βΒ Β βΒ Β βΒ Β βββ message_factory_test.py
+βΒ Β βΒ Β βΒ Β βββ message_listener.py
+βΒ Β βΒ Β βΒ Β βββ message_set_extensions_pb2.py
+βΒ Β βΒ Β βΒ Β βββ message_test.py
+βΒ Β βΒ Β βΒ Β βββ missing_enum_values_pb2.py
+βΒ Β βΒ Β βΒ Β βββ more_extensions_dynamic_pb2.py
+βΒ Β βΒ Β βΒ Β βββ more_extensions_pb2.py
+βΒ Β βΒ Β βΒ Β βββ more_messages_pb2.py
+βΒ Β βΒ Β βΒ Β βββ packed_field_test_pb2.py
+βΒ Β βΒ Β βΒ Β βββ proto_builder_test.py
+βΒ Β βΒ Β βΒ Β βββ python_message.py
+βΒ Β βΒ Β βΒ Β βββ reflection_test.py
+βΒ Β βΒ Β βΒ Β βββ service_reflection_test.py
+βΒ Β βΒ Β βΒ Β βββ symbol_database_test.py
+βΒ Β βΒ Β βΒ Β βββ test_bad_identifiers_pb2.py
+βΒ Β βΒ Β βΒ Β βββ test_util.py
+βΒ Β βΒ Β βΒ Β βββ testing_refleaks.py
+βΒ Β βΒ Β βΒ Β βββ text_encoding_test.py
+βΒ Β βΒ Β βΒ Β βββ text_format_test.py
+βΒ Β βΒ Β βΒ Β βββ type_checkers.py
+βΒ Β βΒ Β βΒ Β βββ unknown_fields_test.py
+βΒ Β βΒ Β βΒ Β βββ well_known_types.py
+βΒ Β βΒ Β βΒ Β βββ well_known_types_test.py
+βΒ Β βΒ Β βΒ Β βββ wire_format.py
+βΒ Β βΒ Β βΒ Β βββ wire_format_test.py
+βΒ Β βΒ Β βββ json_format.py
+βΒ Β βΒ Β βββ map_proto2_unittest_pb2.py
+βΒ Β βΒ Β βββ map_unittest_pb2.py
+βΒ Β βΒ Β βββ message.py
+βΒ Β βΒ Β βββ message_factory.py
+βΒ Β βΒ Β βββ proto_builder.py
+βΒ Β βΒ Β βββ pyext
+βΒ Β βΒ Β βΒ Β βββ __init__.py
+βΒ Β βΒ Β βΒ Β βββ cpp_message.py
+βΒ Β βΒ Β βΒ Β βββ python_pb2.py
+βΒ Β βΒ Β βββ reflection.py
+βΒ Β βΒ Β βββ service.py
+βΒ Β βΒ Β βββ service_reflection.py
+βΒ Β βΒ Β βββ source_context_pb2.py
+βΒ Β βΒ Β βββ struct_pb2.py
+βΒ Β βΒ Β βββ symbol_database.py
+βΒ Β βΒ Β βββ test_messages_proto2_pb2.py
+βΒ Β βΒ Β βββ test_messages_proto3_pb2.py
+βΒ Β βΒ Β βββ text_encoding.py
+βΒ Β βΒ Β βββ text_format.py
+βΒ Β βΒ Β βββ timestamp_pb2.py
+βΒ Β βΒ Β βββ type_pb2.py
+βΒ Β βΒ Β βββ unittest_arena_pb2.py
+βΒ Β βΒ Β βββ unittest_custom_options_pb2.py
+βΒ Β βΒ Β βββ unittest_import_pb2.py
+βΒ Β βΒ Β βββ unittest_import_public_pb2.py
+βΒ Β βΒ Β βββ unittest_mset_pb2.py
+βΒ Β βΒ Β βββ unittest_mset_wire_format_pb2.py
+βΒ Β βΒ Β βββ unittest_no_arena_import_pb2.py
+βΒ Β βΒ Β βββ unittest_no_arena_pb2.py
+βΒ Β βΒ Β βββ unittest_no_generic_services_pb2.py
+βΒ Β βΒ Β βββ unittest_pb2.py
+βΒ Β βΒ Β βββ unittest_proto3_arena_pb2.py
+βΒ Β βΒ Β βββ util
+βΒ Β βΒ Β βΒ Β βββ __init__.py
+βΒ Β βΒ Β βΒ Β βββ json_format_proto3_pb2.py
+βΒ Β βΒ Β βββ wrappers_pb2.py
+βΒ Β βββ protobuf-3.5.0.post1-py2.7-nspkg.pth
βββ s38.egg-link
βββ setuptools
βΒ Β βββ __init__.py
@@ -887,6 +786,8 @@
βΒ Β βββ extern
βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βββ __init__.pyc
+βΒ Β βββ glibc.py
+βΒ Β βββ glibc.pyc
βΒ Β βββ glob.py
βΒ Β βββ glob.pyc
βΒ Β βββ gui-32.exe
@@ -904,6 +805,8 @@
βΒ Β βββ namespaces.pyc
βΒ Β βββ package_index.py
βΒ Β βββ package_index.pyc
+βΒ Β βββ pep425tags.py
+βΒ Β βββ pep425tags.pyc
βΒ Β βββ py27compat.py
βΒ Β βββ py27compat.pyc
βΒ Β βββ py31compat.py
@@ -924,9 +827,11 @@
βΒ Β βββ unicode_utils.pyc
βΒ Β βββ version.py
βΒ Β βββ version.pyc
+βΒ Β βββ wheel.py
+βΒ Β βββ wheel.pyc
βΒ Β βββ windows_support.py
βΒ Β βββ windows_support.pyc
-βββ setuptools-37.0.0.dist-info
+βββ setuptools-38.2.1.dist-info
βΒ Β βββ DESCRIPTION.rst
βΒ Β βββ INSTALLER
βΒ Β βββ LICENSE.txt
@@ -941,13 +846,13 @@
βββ setuptools.pth
βββ six-1.11.0-py2.7.egg
βΒ Β βββ EGG-INFO
+βΒ Β βΒ Β βββ DESCRIPTION.rst
βΒ Β βΒ Β βββ PKG-INFO
-βΒ Β βΒ Β βββ SOURCES.txt
-βΒ Β βΒ Β βββ dependency_links.txt
-βΒ Β βΒ Β βββ not-zip-safe
+βΒ Β βΒ Β βββ RECORD
+βΒ Β βΒ Β βββ WHEEL
+βΒ Β βΒ Β βββ metadata.json
βΒ Β βΒ Β βββ top_level.txt
-βΒ Β βββ six.py
-βΒ Β βββ six.pyc
+βΒ Β βββ six.py
βββ wheel
βΒ Β βββ __init__.py
βΒ Β βββ __init__.pyc
@@ -999,24 +904,20 @@
βΒ Β βββ top_level.txt
βββ zope.deprecation-4.3.0-py2.7.egg
βββ EGG-INFO
+ βΒ Β βββ DESCRIPTION.rst
βΒ Β βββ PKG-INFO
- βΒ Β βββ SOURCES.txt
- βΒ Β βββ dependency_links.txt
+ βΒ Β βββ RECORD
+ βΒ Β βββ WHEEL
+ βΒ Β βββ metadata.json
βΒ Β βββ namespace_packages.txt
- βΒ Β βββ not-zip-safe
βΒ Β βββ requires.txt
βΒ Β βββ top_level.txt
- βββ zope
- βββ __init__.py
- βββ __init__.pyc
- βββ deprecation
- βββ __init__.py
- βββ __init__.pyc
- βββ deprecation.py
- βββ deprecation.pyc
- βββ fixture.py
- βββ fixture.pyc
- βββ tests.py
- βββ tests.pyc
+ βββ zope
+ βΒ Β βββ deprecation
+ βΒ Β βββ __init__.py
+ βΒ Β βββ deprecation.py
+ βΒ Β βββ fixture.py
+ βΒ Β βββ tests.py
+ βββ zope.deprecation-4.3.0-py3.6-nspkg.pth
-69 directories, 950 files
+69 directories, 851 files
Issue Analytics
- State:
- Created 6 years ago
- Reactions:4
- Comments:11 (11 by maintainers)
Top Results From Across the Web
Packaging namespace packages
Namespace packages allow you to split the sub-packages and modules within a single package across multiple, separate distribution packages (referred to asΒ ...
Read more >Why does setup.py sweeps the content of the namespace ...
I'm using namespaces with setuptools to distribute a same module in two different repositories. The goal is to get mymodule.one and mymodule.twoΒ ...
Read more >https://packages.cloud.google.com/apt/dists/mendel...
This package contains the main data files required by 0 A.D. Homepage: ... Breaks: apt-venv (<< 1.0.0-1~), command-not-found (<< 0.2.38-2~),Β ...
Read more >History - setuptools 65.6.3.post20221216 documentation
#3512: Added capability of handling namespace packages created ... extra requirements at load time: - the functionality has been broken since v60.8.0.
Read more >Package List β Spack 0.16.2 documentation
Spack package: aomp/package.py. Versions: 3.8.0, 3.7.0, 3.5.0; Build Dependencies: cmake, mesa, py-setuptools, python, py-pip, py-wheel, perl-data-dumper,Β ...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Proposed fix here: #1215
Itβs still closed π
And I canβt reproduce it either. donβt know what I did wrong the first time on my reproduction. Sorry for the noise.