
I'm having problems installing mailman3 following the instructions on https://docs.mailman3.org/en/latest/install/virtualenv.html Everything goes well until I get to the Installing Mailman Core<https://docs.mailman3.org/en/latest/install/virtualenv.html#installing-mailm...> step, which has me do the following in my venv environment:
(venv)$ pip install wheel mailman psycopg2-binary
Ubuntu 24.04.02 LTS Python 3.12.3 pip version 24.0
First, I was getting problems because my company firewall was blocking outbound traffic. I got that taken care of. Next, I was seeing certificate errors, saying there was a self-signed certificate:
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)'))': /simple/wheel/ Could not fetch URL https://pypi.org/simple/wheel/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/wheel/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)'))) - skipping
When I added --trusted-host pypi.org that error went away but I'm still unable to install anything:
(venv) mailman@wz-prd-tpmd-1:~$ pip -v --trusted-host pypi.org install wheel mailman psycopg2-binary Using pip 24.0 from /opt/mailman/venv/lib/python3.12/site-packages/pip (python 3.12) ERROR: Could not find a version that satisfies the requirement wheel (from versions: none) ERROR: No matching distribution found for wheel
The same error shows up if I try to install just mailman or psycopg2-binary, except the word "wheel" is replace with whichever package I've requested.
I've rerun the apt install of python3-dev and python3-venv to make sure those are present and up to date. Any help you can provide will be greatly appreciated.
-- Henry Hartley Westat

Make sure to "trust" all websites that need to be trusted.
https://stackoverflow.com/questions/49324802/pip-always-fails-ssl-verificati...
Example:
python -m pip install --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org --upgrade pip
"blocking outbound traffic". Seems very restrictive. You should talk with the IT department and ask about running "pip install".
And... the mail server itself isn't going to function without permitted firewall traffic.

On 6/3/25 08:22, Henry Hartley via Mailman-users wrote:
(venv) mailman@wz-prd-tpmd-1:~$ pip -v --trusted-host pypi.org install wheel mailman psycopg2-binary Using pip 24.0 from /opt/mailman/venv/lib/python3.12/site-packages/pip (python 3.12) ERROR: Could not find a version that satisfies the requirement wheel (from versions: none) ERROR: No matching distribution found for wheel
The same error shows up if I try to install just mailman or psycopg2-binary, except the word "wheel" is replace with whichever package I've requested.
I don't understand why this is occurring. All those packages exist in pypi.org
https://pypi.org/project/wheel/ https://pypi.org/project/mailman/ https://pypi.org/project/psycopg2-binary/
Also, pypi.org has a valid ssl certificate signed by GlobalSign nv-sa
If I create and activate a new virtualenv named zzz, and do
(zzz) mark@msapiro:~$ pip -v install wheel mailman psycopg2-binary
I get a successful installation.
I am guessing that there is something in your local network that's redirecting connects to pypi.org to somewhere else.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On 03.06.25 17:22, Henry Hartley via Mailman-users wrote:
I'm having problems installing mailman3 following the instructions on https://docs.mailman3.org/en/latest/install/virtualenv.html Everything goes well until I get to the Installing Mailman Core<https://docs.mailman3.org/en/latest/install/virtualenv.html#installing-mailm...> step, which has me do the following in my venv environment:
(venv)$ pip install wheel mailman psycopg2-binary
Ubuntu 24.04.02 LTS Python 3.12.3 pip version 24.0
First, I was getting problems because my company firewall was blocking outbound traffic. I got that taken care of. Next, I was seeing certificate errors, saying there was a self-signed certificate:
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)'))': /simple/wheel/ Could not fetch URL https://pypi.org/simple/wheel/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/wheel/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)'))) - skipping
There is no self-signed certificate in the chain, when I check it. I guess, there is a proxy somewhere which has a different certificate.
Run
$ openssl s_client -connect pypi.org:443 -showcerts
to check what certificate is presented. It should be something like:
Connecting to 2a04:4e42::223 CONNECTED(00000003) depth=2 OU=GlobalSign Root CA - R3, O=GlobalSign, CN=GlobalSign verify return:1 depth=1 C=BE, O=GlobalSign nv-sa, CN=GlobalSign Atlas R3 DV TLS CA 2025 Q1 verify return:1 depth=0 CN=pypi.org verify return:1
Certificate chain 0 s:CN=pypi.org i:C=BE, O=GlobalSign nv-sa, CN=GlobalSign Atlas R3 DV TLS CA 2025 Q1 a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256 v:NotBefore: Feb 24 04:28:22 2025 GMT; NotAfter: Mar 28 04:28:21 2026 GMT ... 1 s:C=BE, O=GlobalSign nv-sa, CN=GlobalSign Atlas R3 DV TLS CA 2025 Q1 i:OU=GlobalSign Root CA - R3, O=GlobalSign, CN=GlobalSign a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256 v:NotBefore: Oct 16 03:08:04 2024 GMT; NotAfter: Oct 16 00:00:00 2026 GMT ... Server certificate subject=CN=pypi.org issuer=C=BE, O=GlobalSign nv-sa, CN=GlobalSign Atlas R3 DV TLS CA 2025 Q1 ...
When I added --trusted-host pypi.org that error went away but I'm still unable to install anything:
Never ever do that. Find out what is happening. Either something bad is interfering with your network traffic. Or there is a proxy and the chain is different. In the latter case, you will see lots of issue until you have configured your system correctly for the proxy in place...
But never ever simply turn off security and try to install something through broken security. It defies the whole purpose of security and certificates if you simply turn it off or try to ignore it.
-Gerald

Thanks to all who responded for your feedback.
Unfortunately, the firewall blocking outbound traffic isn't something I can do anything about. Servers in our "web zone" must have specific rules allowing outbound access. That's fine for Red Hat or Ubuntu repositories but this is the first machine where we are trying to install using pip, so getting the right rule in place took some experimentation and adjustment.
I did eventually get the install to work with the firewall opened for me and with a --proxy option added to the command (although I'm not 100% sure --proxy was needed).
The other thing I had to do that was different to the instructions was to use pip to install setuptools. I got to a point where I had an error message that said "ERROR: Could not find a version that satisfies the requirement setuptools>=40.8.0" but when I ran "apt install python3-setuptools" it reported that it was "already the newest version (68.1.2-2ubuntu1.2)". However, running pip install setuptools (on a whim) installed version 80.9.0. After that "pip install mailman" worked. Perhaps I should have known this. I feel that making sure setuptools is properly installed might be something to add to the installation instructions.
The next step in the instructions has me create /etc/mailman3/mailman.cfg. The first thing in that file is shown as:
[paths.here] var_dir: /opt/mailman/mm/var
Looking in /opt/mailman, there is no mm directory. Should that have been created, or is that something I need to create myself?
-- Henry Hartley Westat RB 2151
-----Original Message----- From: Gerald Vogt <vogt@spamcop.net> Sent: Tuesday, June 3, 2025 12:29 To: mailman-users@mailman3.org Subject: [MM3-users] Re: Trouble Installing Mailman3
CAUTION: External Email *
On 03.06.25 17:22, Henry Hartley via Mailman-users wrote:
I'm having problems installing mailman3 following the instructions on https://secure-web.cisco.com/1lGZ6VhIpDXnBDYduOpQfdrz5vzmVmUu1Ox4qpxrEdA3f2K... Everything goes well until I get to the Installing Mailman Core<https://secure-web.cisco.com/1XnIv9oM-wXrdCe9VFieDJykhtB-NNf5h-UB4ysN7pvWtAs...> step, which has me do the following in my venv environment:
(venv)$ pip install wheel mailman psycopg2-binary
Ubuntu 24.04.02 LTS Python 3.12.3 pip version 24.0
First, I was getting problems because my company firewall was blocking outbound traffic. I got that taken care of. Next, I was seeing certificate errors, saying there was a self-signed certificate:
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)'))': /simple/wheel/ Could not fetch URL https://secure-web.cisco.com/149I_kjrnLhuIpr1APuB8udvv8jCJuk0lqcI_esQ- dqwmKVpgaw1Y6LT5_dF8kBkxoIp3E5cH7c8E3NU5TFqaenv2yCcBV0jBYVDBuHgpqP9oRU OfJ6XZruLMDf2pqH2ydyrnAxjJ_ZTs59eeLe69Iy0jFuoA5d_XpSiBVdVvGKbBN13EkyH2 HNcgmruVikAcwrT6sN52QPqQIesisnHaK6MvxqVRbMuHjoY3vpvMzLsJaSrN6_XOSx3oGf DZgAOV/https%3A%2F%2Fpypi.org%2Fsimple%2Fwheel%2F%3A There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/wheel/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)'))) - skipping
There is no self-signed certificate in the chain, when I check it. I guess, there is a proxy somewhere which has a different certificate.
Run
$ openssl s_client -connect pypi.org:443 -showcerts
to check what certificate is presented. It should be something like:
Connecting to 2a04:4e42::223 CONNECTED(00000003) depth=2 OU=GlobalSign Root CA - R3, O=GlobalSign, CN=GlobalSign verify return:1 depth=1 C=BE, O=GlobalSign nv-sa, CN=GlobalSign Atlas R3 DV TLS CA 2025 Q1 verify return:1 depth=0 CN=pypi.org verify return:1
Certificate chain 0 s:CN=pypi.org i:C=BE, O=GlobalSign nv-sa, CN=GlobalSign Atlas R3 DV TLS CA 2025 Q1 a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256 v:NotBefore: Feb 24 04:28:22 2025 GMT; NotAfter: Mar 28 04:28:21 2026 GMT ... 1 s:C=BE, O=GlobalSign nv-sa, CN=GlobalSign Atlas R3 DV TLS CA 2025 Q1 i:OU=GlobalSign Root CA - R3, O=GlobalSign, CN=GlobalSign a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256 v:NotBefore: Oct 16 03:08:04 2024 GMT; NotAfter: Oct 16 00:00:00 2026 GMT ... Server certificate subject=CN=pypi.org issuer=C=BE, O=GlobalSign nv-sa, CN=GlobalSign Atlas R3 DV TLS CA 2025 Q1 ...
When I added --trusted-host pypi.org that error went away but I'm still unable to install anything:
Never ever do that. Find out what is happening. Either something bad is interfering with your network traffic. Or there is a proxy and the chain is different. In the latter case, you will see lots of issue until you have configured your system correctly for the proxy in place...
But never ever simply turn off security and try to install something through broken security. It defies the whole purpose of security and certificates if you simply turn it off or try to ignore it.
-Gerald
Mailman-users mailing list -- mailman-users@mailman3.org To unsubscribe send an email to mailman-users-leave@mailman3.org https://secure-web.cisco.com/18iP3uSUcjHSqrMHO0qp7xLDZfU6UEQCIjFnQjNhiuLqlvn... Archived at: https://secure-web.cisco.com/14EbakuFKJzXm1e5mfHMqLgTjYS9LSvDFEBHhhf-pvIniT6...
This message sent to henryhartley@westat.com
- Please use caution when responding and/or clicking on links as this email originated from outside of Westat.

On 6/5/25 08:40, Henry Hartley via Mailman-users wrote:
The other thing I had to do that was different to the instructions was to use pip to install setuptools. I got to a point where I had an error message that said "ERROR: Could not find a version that satisfies the requirement setuptools>=40.8.0" but when I ran "apt install python3-setuptools" it reported that it was "already the newest version (68.1.2-2ubuntu1.2)". However, running pip install setuptools (on a whim) installed version 80.9.0. After that "pip install mailman" worked. Perhaps I should have known this. I feel that making sure setuptools is properly installed might be something to add to the installation instructions.
It depends how you create the venv. virtualenv venv
will create the
venv with pip
, setuptools
and wheel
installed, but our install doc
says do python3 -m venv venv
and that only installs pip
in the venv.
I'll update the doc.
The next step in the instructions has me create /etc/mailman3/mailman.cfg. The first thing in that file is shown as:
[paths.here] var_dir: /opt/mailman/mm/var
Looking in /opt/mailman, there is no mm directory. Should that have been created, or is that something I need to create myself?
You need to create it. I'll update the doc for that too.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On 6/5/25 18:56, Mark Sapiro wrote:
On 6/5/25 08:40, Henry Hartley via Mailman-users wrote:
The next step in the instructions has me create /etc/mailman3/mailman.cfg. The first thing in that file is shown as:
[paths.here] var_dir: /opt/mailman/mm/var
Looking in /opt/mailman, there is no mm directory. Should that have been created, or is that something I need to create myself?
You need to create it. I'll update the doc for that too.
Actually, that's wrong. You don't need to create it. The first time you start Mailman core, it will be created.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

-----Original Message----- From: Mark Sapiro <mark@msapiro.net>
The next step in the instructions has me create /etc/mailman3/mailman.cfg. The first thing in that file is shown as:
[paths.here] var_dir: /opt/mailman/mm/var
Looking in /opt/mailman, there is no mm directory. Should that have been created, or is that something I need to create myself?
You need to create it. I'll update the doc for that too.
Actually, that's wrong. You don't need to create it. The first time you start Mailman core, it will be created.
Excellent. Thanks.
-- Henry

This isn't doing a lot for my self-esteem.
I'm now trying to install mailman-web and mailman-hyperkitty. Running the 'pip install' (as documented here https://docs.mailman3.org/en/latest/install/virtualenv.html#installing-web-u...) is giving me a similar setuptools error to the one I got before, although with a different version number:
[SNIPPED successfully downloaded packages]
Collecting django-haystack>=2.8.0 (from hyperkitty->mailman-web)
Using cached django_haystack-3.3.0.tar.gz (467 kB)
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.
Running 'pip install setuptools' replies that it's already installed (which is what I expected, because I installed it earlier)
Requirement already satisfied: setuptools in ./venv/lib/python3.12/site-packages (80.9.0)
I tried clearing pip's cache, but that made no difference. I am running as the mailman user in venv.
It seems to be somehow related to the django-haystack package. In fact, running 'pip install django-haystack' results in the same error message. Perhaps I need to take it up with the maintainers of that.
-- Henry Hartley Westat RB 2151
-----Original Message----- From: Henry Hartley via Mailman-users <mailman-users@mailman3.org> Sent: Friday, June 6, 2025 09:31 To: Mark Sapiro <mark@msapiro.net>; mailman-users@mailman3.org Subject: [MM3-users] Re: Trouble Installing Mailman3
CAUTION: External Email *
[ This message appears to be from westat.com but the originating sender is external.]
-----Original Message----- From: Mark Sapiro <mark@msapiro.net>
The next step in the instructions has me create /etc/mailman3/mailman.cfg. The first thing in that file is shown as:
[paths.here] var_dir: /opt/mailman/mm/var
Looking in /opt/mailman, there is no mm directory. Should that have been created, or is that something I need to create myself?
You need to create it. I'll update the doc for that too.
Actually, that's wrong. You don't need to create it. The first time you start Mailman core, it will be created.
Excellent. Thanks.
-- Henry
Mailman-users mailing list -- mailman-users@mailman3.org To unsubscribe send an email to mailman-users-leave@mailman3.org https://secure-web.cisco.com/1zFhvAPq5v7Gs3kANDBULVLuS95U56cpRwhnFwcvKwwPbIr... Archived at: https://secure-web.cisco.com/1FyVIRlyXW9zpUP_wm98qkGB_DRuoOre5YHVvNpUo9unXQf...
This message sent to henryhartley@westat.com
- Please use caution when responding and/or clicking on links as this email originated from outside of Westat.

Henry Hartley via Mailman-users writes:
This isn't doing a lot for my self-esteem.
I don't think you need to worry about you. :-) There are dozens of moving parts involved, each of which sets its own requirements and is continuously being updated. And you're working in a virtual environment, which is a fragile hack. Works well if you treat it right, but does need care.
I'm now trying to install mailman-web and mailman-hyperkitty. Running the 'pip install' (as documented here https://docs.mailman3.org/en/latest/install/virtualenv.html#installing-web-u...) is giving me a similar setuptools error to the one I got before, although with a different version number: [...] ERROR: Could not find a version that satisfies the requirement setuptools>=61.2 (from versions: none) [...] Requirement already satisfied: setuptools in ./venv/lib/python3.12/site-packages (80.9.0)
There are two ways those two messages can be consistent: that pip's version number parsing is buggy, or those aren't the same pip. The former explanation, while possible, is highly unlikely.
One common explanation for this kind of conflict is that you did part of the installation with the venv active, and part without. I know you wrote that you are "running as the mailman user in venv", but just to double check, does "in" mean "current working directory is venv" or does it mean "venv is activated with '. bin/activate'" as well? You need to activate the venv to get all of the paths (especially to the "pip" and "python" commands) right.
I took a look at a fairly recent install of django-haystack, and in the .dist-info it says the installer is 'pip' rather than 'pip3'. IMO this is bad practice, even today. One possible explanation is that somehow at an intermediate stage the install script is picking up a Python 2 pip, and IIRC Python 2 setuptools goes only to 58.x or 59.x. Or if you're in a Debian environment, I seem to recall the Debian Python 3 environment does not provide setuptools at all (and deliberately makes it hard to install outside of a venv).
Check if your venv bin directory has a pip executable (or symlink to the executable). If not, adding a symlink pip -> pip3 may help.
It seems to be somehow related to the django-haystack package. In fact, running 'pip install django-haystack' results in the same error message. Perhaps I need to take it up with the maintainers of that.
= setuptools 61.2 (probably because it's looking for setuptools somewhere other than your venv, and isn't seeing 80.9.0 at all). I very much doubt that the Haystack developers can help with this more
No, the problem is pip is unable to understand that setuptools 80.9.0 than other experienced Python developers.
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan

-----Original Message----- From: Stephen J. Turnbull <steve@turnbull.jp> Sent: Thursday, June 12, 2025 08:17 Subject: [MM3-users] Re: Trouble Installing Mailman3
Henry Hartley via Mailman-users writes:
This isn't doing a lot for my self-esteem.
I don't think you need to worry about you. :-) There are dozens of moving parts involved, each of which sets its own requirements and is continuously being updated. And you're working in a virtual environment, which is a fragile hack. Works well if you treat it right, but does need care.
Thanks for your encouraging words.
There are two ways those two messages can be consistent: that pip's version number parsing is buggy, or those aren't the same pip. The former explanation, while possible, is highly unlikely.
One common explanation for this kind of conflict is that you did part of the installation with the venv active, and part without. I know you wrote that you are "running as the mailman user in venv", but just to double check, does "in" mean "current working directory is venv" or does it mean "venv is activated with '. bin/activate'" as well? You need to activate the venv to get all of the paths (especially to the "pip" and "python" commands) right.
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:~$
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.
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)
And that's followed by downloading (or using a cached version) of 11 items before I get the subprocess error.
I took a look at a fairly recent install of django-haystack, and in the .dist-info it says the installer is 'pip' rather than 'pip3'. IMO this is bad practice, even today. One possible explanation is that somehow at an intermediate stage the install script is picking up a Python 2 pip, and IIRC Python 2 setuptools goes only to 58.x or 59.x. Or if you're in a Debian environment, I seem to recall the Debian Python 3 environment does not provide setuptools at all (and deliberately makes it hard to install outside of a venv).
Check if your venv bin directory has a pip executable (or symlink to the executable). If not, adding a symlink pip -> pip3 may help.
There is no Python2 on the system so I'm pretty sure it's not that. The pip being used seems to be the right one and pip and pip3 seem to be the same:
(venv) mailman@wz-prd-tpmd-1:~$ pwd /opt/mailman (venv) mailman@wz-prd-tpmd-1:~$ which pip /opt/mailman/venv/bin/pip (venv) mailman@wz-prd-tpmd-1:~$ which pip3 /opt/mailman/venv/bin/pip3 (venv) mailman@wz-prd-tpmd-1:~$ pip -V pip 24.0 from /opt/mailman/venv/lib/python3.12/site-packages/pip (python 3.12) (venv) mailman@wz-prd-tpmd-1:~$ pip3 -V pip 24.0 from /opt/mailman/venv/lib/python3.12/site-packages/pip (python 3.12) (venv) mailman@wz-prd-tpmd-1:~$ cmp venv/bin/pip venv/bin/pip3 (venv) mailman@wz-prd-tpmd-1:~$ pip cache purge Files removed: 44 (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 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.
-- Henry

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

-----Original Message----- From: Mark Sapiro <mark@msapiro.net> To: mailman-users@mailman3.org Sent: Thursday, June 12, 2025 17:39 Subject: [MM3-users] Re: Trouble Installing Mailman3
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. . Specifying --no-build-isolation on the pip command will disable this. If you specify --no-build-isolation on the pip command, it should use setuptools and wheel from your venv.
Eureka! (more precisely, YOU found it!)
Adding --no-build-isolation did the trick and I think I'm in business.
I cannot thank you enough.
-- Henry Hartley Westat RB 2151
participants (5)
-
Gerald Vogt
-
Henry Hartley
-
Mark Sapiro
-
Sam Darwin
-
Stephen J. Turnbull