
On 6/12/25 12:44, Henry Hartley via Mailman-users wrote:
Here's what I mean when I say I'm doing this "in venv"
I've become the mailman user: sudo su - mailman The .bashrc for that user includes: source /opt/mailman/venv/bin/activate The prompt has (venv) at the left end of it: (venv) mailman@wz-prd-tpmd-1:~$
So your venv is active. That is good.
All pip commands have been run in this state. I did first install setuptools with apt install python3-setuptools and that installed version 68.1.2-2ubuntu1.2.
Which installed it in some /usr/<maybe local here>/lib/pythonxx/dist-packages or maybe site-packages directory which is probably not goint to be consulted by the python in your venv.
Note that I'm still not sure the firewall is completely out of the picture, since I do have to include the --trusted-host and --proxy options. Some things install, though, so I think that's OK.
When I do this at the (venv) prompt, asking to install both setuptools and mailman-web:
pip install --proxy http://webproxyta.westat.com:3128 --trusted-host pypi.org setuptools mailman-web
The first line of the output is:
Requirement already satisfied: setuptools in ./venv/lib/python3.12/site-packages (80.9.0)
So setuptools 80.9.0 is installed in your venv which is good.
And that's followed by downloading (or using a cached version) of 11 items before I get the subprocess error.
(venv) mailman@wz-prd-tpmd-1:~$ /opt/mailman/venv/bin/pip install --proxy http://webproxyta.westat.com:3128 --trusted-host pypi.org setuptools mailman-web Requirement already satisfied: setuptools in ./venv/lib/python3.12/site-packages (80.9.0) Collecting mailman-web Downloading mailman_web-0.0.9-py3-none-any.whl.metadata (3.2 kB) Collecting django<4.3,>=4.0 (from mailman-web) Downloading django-4.2.23-py3-none-any.whl.metadata (4.2 kB) Collecting hyperkitty (from mailman-web) Downloading hyperkitty-1.3.12-py3-none-any.whl.metadata (3.6 kB) Collecting postorius (from mailman-web) Downloading postorius-1.3.13-py3-none-any.whl.metadata (2.9 kB) Collecting whoosh (from mailman-web) Downloading Whoosh-2.7.4-py2.py3-none-any.whl.metadata (3.1 kB) Collecting asgiref<4,>=3.6.0 (from django<4.3,>=4.0->mailman-web) Downloading asgiref-3.8.1-py3-none-any.whl.metadata (9.3 kB) Collecting sqlparse>=0.3.1 (from django<4.3,>=4.0->mailman-web) Downloading sqlparse-0.5.3-py3-none-any.whl.metadata (3.9 kB) Collecting django-compressor>=1.3 (from hyperkitty->mailman-web) Downloading django_compressor-4.5.1-py2.py3-none-any.whl.metadata (5.0 kB) Collecting django-extensions>=1.3.7 (from hyperkitty->mailman-web) Downloading django_extensions-4.1-py3-none-any.whl.metadata (6.1 kB) Collecting django-gravatar2>=1.0.6 (from hyperkitty->mailman-web) Downloading django_gravatar2-1.4.5-py2.py3-none-any.whl.metadata (4.3 kB) Collecting django-haystack>=2.8.0 (from hyperkitty->mailman-web) > Downloading django_haystack-3.3.0.tar.gz (467 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 467.3/467.3 kB 22.3 MB/s eta 0:00:00
The above is collecting mailman-web and its dependencies.
Installing build dependencies ... error error: subprocess-exited-with-error
× pip subprocess to install build dependencies did not run successfully. │ exit code: 1 ╰─> [2 lines of output] ERROR: Could not find a version that satisfies the requirement setuptools>=61.2 (from versions: none) ERROR: No matching distribution found for setuptools>=61.2 [end of output]
note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error
× pip subprocess to install build dependencies did not run successfully. │ exit code: 1 ╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
And this is all from a pip subprocess which is trying to build install build dependencies. I.e., this error is not necessarily related to django-haystack or any other specific package, but is saying it can't find a setuptools package to satisfy the build requirements.
This in turn may be that the subprocess doesn't see your --proxy option.
I think the issue may be that normally pip installs build requirements in an isolated temporary directory so as not to create potential conflicts with installed packages. See <https://pip.pypa.io/en/stable/reference/build-system/pyproject-toml/#build-i...>. Specifying --no-build-isolation on the pip command will disable this. See <https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-no-build-isolation>. If you specify --no-build-isolation on the pip command, it should use setuptools and wheel from your venv.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan