Install & Compatibility
Where this runs
tested against v6.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.028s · 34.3MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 4.1s · import 0.024s · 35MB
37MB installed
● package 37MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
IResource
✓ from zope.browserresource.interfaces import IResource
✗ from zope.browserresource import IResource
IResource is in the submodule interfaces, not top-level.
Resource
✓ from zope.browserresource.resource import Resource
✗ from zope.browserresource import Resource
Resource class is in the resource submodule, not top-level.
Define a basic browser resource that returns a simple response.
from zope.browserresource.resource import Resource
from zope.browserresource.interfaces import IResource
from zope.interface import implementer
@implementer(IResource)
class MyResource(Resource):
def __init__(self, request):
self.request = request
def __call__(self):
return b"Hello, world!"
Errors
Common errors & fixes
ImportError: cannot import name 'Resource' from 'zope.browserresource'
Resource is not exposed at package level; must be imported from submodule.
fixUse: from zope.browserresource.resource import Resource
TypeError: __init__() missing 1 required positional argument: 'request'
Resource.__init__ requires a request argument when called directly without adapter.
fixInstantiate with request: MyResource(request) or register as adapter and let Zope provide the request.
Upgrade
Version history
6.0latest on PyPI · released Sep 12, 2025
Audit
Dependencies
zope.componentrequiredRequired for component architecture
zope.interfacerequiredRequired for interface definitions
zope.publisherrequiredRequired for publishing browser resources