setuptools
setuptools copied to clipboard
Getting issue while installing openwisp
setuptools version
68.1.2
Python version
3.12
OS
Ubuntu 24.4
Additional environment information
No response
Description
TASK [openwisp.openwisp2 : Install openwisp2 controller and its dependencies] *******************************************************************************
FAILED - RETRYING: [192.168.144.170]: Install openwisp2 controller and its dependencies (5 retries left).
FAILED - RETRYING: [192.168.144.170]: Install openwisp2 controller and its dependencies (4 retries left).
FAILED - RETRYING: [192.168.144.170]: Install openwisp2 controller and its dependencies (3 retries left).
FAILED - RETRYING: [192.168.144.170]: Install openwisp2 controller and its dependencies (2 retries left).
FAILED - RETRYING: [192.168.144.170]: Install openwisp2 controller and its dependencies (1 retries left).
fatal: [192.168.144.170]: FAILED! => {"attempts": 5, "changed": false, "cmd": ["/opt/openwisp2/env/bin/pip3", "install", "-U", "openwisp-controller~=1.0.1", "service_identity"], "msg": "stdout: Collecting openwisp-controller~=1.0.1\n Using cached openwisp_controller-1.0.3-py2.py3-none-any.whl.metadata (139 kB)\nCollecting service_identity\n Using cached service_identity-24.2.0-py3-none-any.whl.metadata (5.1 kB)\nCollecting django-sortedm2m~=3.1.1 (from openwisp-controller~=1.0.1)\n Using cached django_sortedm2m-3.1.1-py2.py3-none-any.whl.metadata (19 kB)\nCollecting django-reversion~=4.0.1 (from openwisp-controller~=1.0.1)\n Using cached django_reversion-4.0.2-py3-none-any.whl.metadata (3.6 kB)\nCollecting django-x509~=1.1.0 (from openwisp-controller~=1.0.1)\n Using cached django_x509-1.1-py2.py3-none-any.whl.metadata (19 kB)\nCollecting django-taggit~=2.1.0 (from openwisp-controller~=1.0.1)\n Using cached django_taggit-2.1.0-py3-none-any.whl.metadata (3.5 kB)\nCollecting django-loci~=1.0.1 (from openwisp-controller~=1.0.1)\n Using cached django_loci-1.0.1-py2.py3-none-any.whl.metadata (16 kB)\nCollecting django-flat-json-widget~=0.2.0 (from openwisp-controller~=1.0.1)\n Using cached django_flat_json_widget-0.2-py2.py3-none-any.whl.metadata (5.1 kB)\nCollecting openwisp-utils~=1.0.1 (from openwisp-utils[rest]~=1.0.1->openwisp-controller~=1.0.1)\n Using cached openwisp_utils-1.0.5-py2.py3-none-any.whl.metadata (63 kB)\nCollecting netjsonconfig~=1.0.1 (from openwisp-controller~=1.0.1)\n Using cached netjsonconfig-1.0.2-py2.py3-none-any.whl.metadata (3.8 kB)\nCollecting openwisp-users~=1.0.0 (from openwisp-controller~=1.0.1)\n Using cached openwisp_users-1.0.2-py2.py3-none-any.whl.metadata (44 kB)\nCollecting openwisp-notifications~=1.0.0 (from openwisp-controller~=1.0.1)\n Using cached openwisp_notifications-1.0.3-py2.py3-none-any.whl.metadata (55 kB)\nCollecting openwisp-ipam~=1.0.0 (from openwisp-controller~=1.0.1)\n Using cached openwisp_ipam-1.0-py2.py3-none-any.whl.metadata (24 kB)\nCollecting djangorestframework-gis~=0.18.0 (from openwisp-controller~=1.0.1)\n Using cached djangorestframework_gis-0.18-py2.py3-none-any.whl.metadata (29 kB)\nCollecting paramiko~=2.10.3 (from paramiko[ed25519]~=2.10.3->openwisp-controller~=1.0.1)\n Using cached paramiko-2.10.6-py2.py3-none-any.whl.metadata (4.6 kB)\nCollecting scp~=0.14.2 (from openwisp-controller~=1.0.1)\n Using cached scp-0.14.5-py2.py3-none-any.whl.metadata (4.3 kB)\nCollecting celery~=5.2.3 (from openwisp-controller~=1.0.1)\n Using cached celery-5.2.7-py3-none-any.whl.metadata (20 kB)\nCollecting django-cache-memoize~=0.1 (from openwisp-controller~=1.0.1)\n Using cached django_cache_memoize-0.2.0-py3-none-any.whl.metadata (15 kB)\nCollecting shortuuid~=1.0.1 (from openwisp-controller~=1.0.1)\n Using cached shortuuid-1.0.13-py3-none-any.whl.metadata (5.8 kB)\nRequirement already satisfied: netaddr~=0.8.0 in /usr/lib/python3/dist-packages (from openwisp-controller~=1.0.1) (0.8.0)\nRequirement already satisfied: attrs>=19.1.0 in /opt/openwisp2/env/lib/python3.12/site-packages (from service_identity) (24.2.0)\nRequirement already satisfied: cryptography in /usr/lib/python3/dist-packages (from service_identity) (41.0.7)\nCollecting pyasn1 (from service_identity)\n Using cached pyasn1-0.6.1-py3-none-any.whl.metadata (8.4 kB)\nCollecting pyasn1-modules (from service_identity)\n Using cached pyasn1_modules-0.4.1-py3-none-any.whl.metadata (3.5 kB)\nRequirement already satisfied: pytz>=2021.3 in /usr/lib/python3/dist-packages (from celery~=5.2.3->openwisp-controller~=1.0.1) (2024.1)\nCollecting billiard<4.0,>=3.6.4.0 (from celery~=5.2.3->openwisp-controller~=1.0.1)\n Using cached billiard-3.6.4.0-py3-none-any.whl.metadata (4.5 kB)\nCollecting kombu<6.0,>=5.2.3 (from celery~=5.2.3->openwisp-controller~=1.0.1)\n Using cached kombu-5.4.2-py3-none-any.whl.metadata (3.2 kB)\nCollecting vine<6.0,>=5.0.0 (from celery~=5.2.3->openwisp-controller~=1.0.1)\n Using cached vine-5.1.0-py3-none-any.whl.metadata (2.7 kB)\nRequirement already satisfied: click<9.0,>=8.0.3 in /usr/lib/python3/dist-packages (from celery~=5.2.3->openwisp-controller~=1.0.1) (8.1.6)\nCollecting click-didyoumean>=0.0.3 (from celery~=5.2.3->openwisp-controller~=1.0.1)\n Using cached click_didyoumean-0.3.1-py3-none-any.whl.metadata (3.9 kB)\nCollecting click-repl>=0.2.0 (from celery~=5.2.3->openwisp-controller~=1.0.1)\n Using cached click_repl-0.3.0-py3-none-any.whl.metadata (3.6 kB)\nCollecting click-plugins>=1.1.1 (from celery~=5.2.3->openwisp-controller~=1.0.1)\n Using cached click_plugins-1.1.1-py2.py3-none-any.whl.metadata (6.4 kB)\nCollecting django<4.1.0,>=3.0 (from django-loci~=1.0.1->openwisp-controller~=1.0.1)\n Using cached Django-4.0.10-py3-none-any.whl.metadata (4.1 kB)\nCollecting channels~=3.0.4 (from django-loci~=1.0.1->openwisp-controller~=1.0.1)\n Using cached channels-3.0.5-py3-none-any.whl.metadata (1.3 kB)\nCollecting django-leaflet~=0.28.0 (from django-loci~=1.0.1->openwisp-controller~=1.0.1)\n Using cached django_leaflet-0.28.3-py3-none-any.whl.metadata (16 kB)\nCollecting Pillow~=9.1.0 (from django-loci~=1.0.1->openwisp-controller~=1.0.1)\n Using cached Pillow-9.1.1.tar.gz (49.8 MB)\n Preparing metadata (setup.py): started\n Preparing metadata (setup.py): finished with status 'error'\n\n:stderr: error: subprocess-exited-with-error\n \n × python setup.py egg_info did not run successfully.\n │ exit code: 1\n ╰─> [3 lines of output]\n /opt/openwisp2/env/lib/python3.12/site-packages/_distutils_hack/init.py:53: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\n warnings.warn(\n ERROR: Can not execute setup.py since setuptools is not available in the build environment.\n [end of output]\n \n note: This error originates from a subprocess, and is likely not a problem with pip.\nerror: metadata-generation-failed\n\n× Encountered error while generating package metadata.\n╰─> See above for output.\n\nnote: This is an issue with the package mentioned above, not pip.\nhint: See above for details.\n"}
How to Reproduce
sudo apt install ansible-core sudo apt install python3-pip sudo apt install sshpass sudo apt install curl sudo apt install git pip install Jinja2>=2.11 --break-system-packages sudo ssh-keyscan -H 127.0.0.1 >> ~/.ssh/known_hosts sudo ssh-keyscan -H 192.168.211.132 >> ~/.ssh/known_hosts sudo ssh-keyscan -H localhost >> ~/.ssh/known_hosts PermitRootLogin yes line in the /etc/ssh/sshd_config should be able to ssh its own ip and also be added to sudoers ansible-galaxy collection install "community.general:>=3.6.0" --force ansible-galaxy collection install "ansible.posix" --force ansible-galaxy install openwisp.openwisp2 --force mkdir ~/openwisp2-ansible-playbook cd ~/openwisp2-ansible-playbook
place below content in hosts file:
[openwisp2] 192.168.211.132
place below content in playbook.yml file
-
hosts: openwisp2 roles:
- openwisp.openwisp2
the following line is needed only when an IP address is used as the inventory hostname
vars: postfix_myhostname: localhost
#ansible-playbook -i hosts playbook.yml -b -k -K --become-method=su ansible-playbook -i hosts playbook.yml -u ctadmin -k --become -K ======================================== OR now create playbook with : -
hosts: openwisp2 become: "{{ become | default('yes') }}" roles:
- openwisp.openwisp2 vars: openwisp2_radius: true openwisp2_freeradius_install: true
set to false when you don't want to register openwisp-radius
API endpoints.
openwisp2_radius_urls: true =============================================================
Other detail
TASK [openwisp.openwisp2 : Install openwisp2 controller and its dependencies] *******************************************************************************
FAILED - RETRYING: [192.168.144.170]: Install openwisp2 controller and its dependencies (5 retries left).
FAILED - RETRYING: [192.168.144.170]: Install openwisp2 controller and its dependencies (4 retries left).
FAILED - RETRYING: [192.168.144.170]: Install openwisp2 controller and its dependencies (3 retries left).
FAILED - RETRYING: [192.168.144.170]: Install openwisp2 controller and its dependencies (2 retries left).
FAILED - RETRYING: [192.168.144.170]: Install openwisp2 controller and its dependencies (1 retries left).
fatal: [192.168.144.170]: FAILED! => {"attempts": 5, "changed": false, "cmd": ["/opt/openwisp2/env/bin/pip3", "install", "-U", "openwisp-controller~=1.0.1", "service_identity"], "msg": "stdout: Collecting openwisp-controller~=1.0.1\n Using cached openwisp_controller-1.0.3-py2.py3-none-any.whl.metadata (139 kB)\nCollecting service_identity\n Using cached service_identity-24.2.0-py3-none-any.whl.metadata (5.1 kB)\nCollecting django-sortedm2m~=3.1.1 (from openwisp-controller~=1.0.1)\n Using cached django_sortedm2m-3.1.1-py2.py3-none-any.whl.metadata (19 kB)\nCollecting django-reversion~=4.0.1 (from openwisp-controller~=1.0.1)\n Using cached django_reversion-4.0.2-py3-none-any.whl.metadata (3.6 kB)\nCollecting django-x509~=1.1.0 (from openwisp-controller~=1.0.1)\n Using cached django_x509-1.1-py2.py3-none-any.whl.metadata (19 kB)\nCollecting django-taggit~=2.1.0 (from openwisp-controller~=1.0.1)\n Using cached django_taggit-2.1.0-py3-none-any.whl.metadata (3.5 kB)\nCollecting django-loci~=1.0.1 (from openwisp-controller~=1.0.1)\n Using cached django_loci-1.0.1-py2.py3-none-any.whl.metadata (16 kB)\nCollecting django-flat-json-widget~=0.2.0 (from openwisp-controller~=1.0.1)\n Using cached django_flat_json_widget-0.2-py2.py3-none-any.whl.metadata (5.1 kB)\nCollecting openwisp-utils~=1.0.1 (from openwisp-utils[rest]~=1.0.1->openwisp-controller~=1.0.1)\n Using cached openwisp_utils-1.0.5-py2.py3-none-any.whl.metadata (63 kB)\nCollecting netjsonconfig~=1.0.1 (from openwisp-controller~=1.0.1)\n Using cached netjsonconfig-1.0.2-py2.py3-none-any.whl.metadata (3.8 kB)\nCollecting openwisp-users~=1.0.0 (from openwisp-controller~=1.0.1)\n Using cached openwisp_users-1.0.2-py2.py3-none-any.whl.metadata (44 kB)\nCollecting openwisp-notifications~=1.0.0 (from openwisp-controller~=1.0.1)\n Using cached openwisp_notifications-1.0.3-py2.py3-none-any.whl.metadata (55 kB)\nCollecting openwisp-ipam~=1.0.0 (from openwisp-controller~=1.0.1)\n Using cached openwisp_ipam-1.0-py2.py3-none-any.whl.metadata (24 kB)\nCollecting djangorestframework-gis~=0.18.0 (from openwisp-controller~=1.0.1)\n Using cached djangorestframework_gis-0.18-py2.py3-none-any.whl.metadata (29 kB)\nCollecting paramiko~=2.10.3 (from paramiko[ed25519]~=2.10.3->openwisp-controller~=1.0.1)\n Using cached paramiko-2.10.6-py2.py3-none-any.whl.metadata (4.6 kB)\nCollecting scp~=0.14.2 (from openwisp-controller~=1.0.1)\n Using cached scp-0.14.5-py2.py3-none-any.whl.metadata (4.3 kB)\nCollecting celery~=5.2.3 (from openwisp-controller~=1.0.1)\n Using cached celery-5.2.7-py3-none-any.whl.metadata (20 kB)\nCollecting django-cache-memoize~=0.1 (from openwisp-controller~=1.0.1)\n Using cached django_cache_memoize-0.2.0-py3-none-any.whl.metadata (15 kB)\nCollecting shortuuid~=1.0.1 (from openwisp-controller~=1.0.1)\n Using cached shortuuid-1.0.13-py3-none-any.whl.metadata (5.8 kB)\nRequirement already satisfied: netaddr~=0.8.0 in /usr/lib/python3/dist-packages (from openwisp-controller~=1.0.1) (0.8.0)\nRequirement already satisfied: attrs>=19.1.0 in /opt/openwisp2/env/lib/python3.12/site-packages (from service_identity) (24.2.0)\nRequirement already satisfied: cryptography in /usr/lib/python3/dist-packages (from service_identity) (41.0.7)\nCollecting pyasn1 (from service_identity)\n Using cached pyasn1-0.6.1-py3-none-any.whl.metadata (8.4 kB)\nCollecting pyasn1-modules (from service_identity)\n Using cached pyasn1_modules-0.4.1-py3-none-any.whl.metadata (3.5 kB)\nRequirement already satisfied: pytz>=2021.3 in /usr/lib/python3/dist-packages (from celery~=5.2.3->openwisp-controller~=1.0.1) (2024.1)\nCollecting billiard<4.0,>=3.6.4.0 (from celery~=5.2.3->openwisp-controller~=1.0.1)\n Using cached billiard-3.6.4.0-py3-none-any.whl.metadata (4.5 kB)\nCollecting kombu<6.0,>=5.2.3 (from celery~=5.2.3->openwisp-controller~=1.0.1)\n Using cached kombu-5.4.2-py3-none-any.whl.metadata (3.2 kB)\nCollecting vine<6.0,>=5.0.0 (from celery~=5.2.3->openwisp-controller~=1.0.1)\n Using cached vine-5.1.0-py3-none-any.whl.metadata (2.7 kB)\nRequirement already satisfied: click<9.0,>=8.0.3 in /usr/lib/python3/dist-packages (from celery~=5.2.3->openwisp-controller~=1.0.1) (8.1.6)\nCollecting click-didyoumean>=0.0.3 (from celery~=5.2.3->openwisp-controller~=1.0.1)\n Using cached click_didyoumean-0.3.1-py3-none-any.whl.metadata (3.9 kB)\nCollecting click-repl>=0.2.0 (from celery~=5.2.3->openwisp-controller~=1.0.1)\n Using cached click_repl-0.3.0-py3-none-any.whl.metadata (3.6 kB)\nCollecting click-plugins>=1.1.1 (from celery~=5.2.3->openwisp-controller~=1.0.1)\n Using cached click_plugins-1.1.1-py2.py3-none-any.whl.metadata (6.4 kB)\nCollecting django<4.1.0,>=3.0 (from django-loci~=1.0.1->openwisp-controller~=1.0.1)\n Using cached Django-4.0.10-py3-none-any.whl.metadata (4.1 kB)\nCollecting channels~=3.0.4 (from django-loci~=1.0.1->openwisp-controller~=1.0.1)\n Using cached channels-3.0.5-py3-none-any.whl.metadata (1.3 kB)\nCollecting django-leaflet~=0.28.0 (from django-loci~=1.0.1->openwisp-controller~=1.0.1)\n Using cached django_leaflet-0.28.3-py3-none-any.whl.metadata (16 kB)\nCollecting Pillow~=9.1.0 (from django-loci~=1.0.1->openwisp-controller~=1.0.1)\n Using cached Pillow-9.1.1.tar.gz (49.8 MB)\n Preparing metadata (setup.py): started\n Preparing metadata (setup.py): finished with status 'error'\n\n:stderr: error: subprocess-exited-with-error\n \n × python setup.py egg_info did not run successfully.\n │ exit code: 1\n ╰─> [3 lines of output]\n /opt/openwisp2/env/lib/python3.12/site-packages/_distutils_hack/__init__.py:53: UserWarning: Reliance on distutils from stdlib is deprecated. Users must rely on setuptools to provide the distutils module. Avoid importing distutils or import setuptools first, and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml\n warnings.warn(\n ERROR: Can not execute `setup.py` since setuptools is not available in the build environment.\n [end of output]\n \n note: This error originates from a subprocess, and is likely not a problem with pip.\nerror: metadata-generation-failed\n\n× Encountered error while generating package metadata.\n╰─> See above for output.\n\nnote: This is an issue with the package mentioned above, not pip.\nhint: See above for details.\n"}
Hi, you may try to install the package with pip install --use-pep517 ..., if it fail, I recommend contacting the package maintainers directly to notify the package needs maintenance (e.g. it needs an appropriate pyproject.toml file, which may be missing)
Sometimes updating to a more recent version of the package also helps.