
On Sat, Feb 20, 2021, at 5:33 PM, Mark Sapiro wrote:
On 2/20/21 3:07 PM, Marius Ghita wrote:
I think a setup step might be missing from the developer's docs https://docs.mailman3.org/en/latest/devsetup.html
If I go through the venv setup and when I call mailman info, the following error shows up (missing dependency).
... File "/home/_/Workspace/personal/mailman/src/mailman/__init__.py", line 38, in <module> from mailman.core.i18n import initialize File "/home/_/Workspace/personal/mailman/src/mailman/core/i18n.py", line 22, in <module> from flufl.i18n import PackageStrategy, registry ModuleNotFoundError: No module named 'flufl.i18n'
This is a packaging issue. The short answer is if in your venv you run
pip uninstall flufl.bounce flufl.lock flufl.i18n pip install flufl.bounce flufl.lock flufl.i18n
to remove and reinstall the flufl modules, it will then work.
The larger issue is that Barry added support for PEP 420 implicit namespace1
which is only supported by pip (setuptools) and not distutils as per 2. So,
setup.py develop
isn’t able to install them properly. Which is why you have
to uninstall and install them using pip
after python setup.py develop
.
The solution is to replace all the places we have python setup.py develop
to pip install -e .
which results in an editable install and uses setuptools.
I have done that in several places, but please point out anywhere you see
python setup.py develop
and we can replace it with pip install -e .
.
The longer answer is if you look in your venv's site-packages directory before you remove the flufl modules, you will see
flufl.bounce-3.0.2-py3.9.egg/ flufl.i18n-3.1.5-py3.9.egg/ flufl.lock-5.0.5-py3.9.egg/
and in easy-install.pth entries
./flufl.lock-5.0.5-py3.9.egg ./flufl.i18n-3.1.5-py3.9.egg/ ./flufl.bounce-3.0.2-py3.9.egg/
and after, in site-packages
flufl/ flufl.bounce-3.0.2.dist-info/ flufl.bounce-3.0.2-py3.9-nspkg.pth flufl.i18n-3.1.5.dist-info/ flufl.i18n-3.1.5-py3.9-nspkg.pth flufl.lock-5.0.5.dist-info/ flufl.lock-5.0.5-py3.9-nspkg.pth
and in site-packages/flufl
bounce/ i18n/ lock/
This later configuration works fo importing any of flufl.bounce, flufl.i18n and flufl.lock, but the former winds up looking in flufl.bounce-3.0.2-py3.9.egg/ for everything and only finds flufl.bounce and not the others.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Mailman-Developers mailing list -- mailman-developers@python.org To unsubscribe send an email to mailman-developers-leave@python.org https://mail.python.org/mailman3/lists/mailman-developers.python.org/ Mailman FAQ: https://wiki.list.org/x/AgA3
Security Policy: https://wiki.list.org/x/QIA9
-- thanks, Abhilash Raj (maxking)