Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install extra python packages is failing on Debian 11.2 #325

Open
Lukas-J opened this issue Jan 1, 2022 · 3 comments
Open

Install extra python packages is failing on Debian 11.2 #325

Lukas-J opened this issue Jan 1, 2022 · 3 comments

Comments

@Lukas-J
Copy link
Contributor

Lukas-J commented Jan 1, 2022

Task "Install extra python packages" fails on a freshly installed Debian 11.2 in VirtualBox.

Running pip3 install -U bpython as root loacally on the destination machine fixes the issue.

The output is the following:

(ansible) lukas@debian:~$ ansible-playbook -i hosts playbook.yml -u lukas -b -k -K --become-method=su
SSH password: 
BECOME password[defaults to SSH password]: 

PLAY [openwisp2] *****************************************************************************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************************************************************
ok: [192.168.56.2]

TASK [Stouts.postfix : include_tasks] ********************************************************************************************************************************************************
included: /home/lukas/.ansible/roles/Stouts.postfix/tasks/postfix.yml for 192.168.56.2

TASK [Stouts.postfix : Install requirements (Debian)] ****************************************************************************************************************************************
ok: [192.168.56.2] => (item=postfix)
ok: [192.168.56.2] => (item=ca-certificates)
ok: [192.168.56.2] => (item=mailutils)
ok: [192.168.56.2] => (item=libsasl2-modules)

TASK [Stouts.postfix : Install DKIM requirements (Debian)] ***********************************************************************************************************************************
skipping: [192.168.56.2] => (item=opendkim) 
skipping: [192.168.56.2] => (item=opendkim-tools) 

TASK [Stouts.postfix : Install postfix-pcre] *************************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Install requirements (RedHat)] ****************************************************************************************************************************************
skipping: [192.168.56.2] => (item=postfix) 
skipping: [192.168.56.2] => (item=ca-certificates) 
skipping: [192.168.56.2] => (item=mailx) 
skipping: [192.168.56.2] => (item=libselinux-python) 

TASK [Stouts.postfix : Install DKIM requirements (RedHat)] ***********************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : create self-signed SSL cert] ******************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : set permissions for self-signed SSL cert] *****************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : set permissions for self-signed SSL key] ******************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Create DKIM directories] **********************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Create DKIM directories] **********************************************************************************************************************************************
skipping: [192.168.56.2] => (item=192.168.56.2) 

TASK [Stouts.postfix : Generate DKIM key] ****************************************************************************************************************************************************
skipping: [192.168.56.2] => (item=192.168.56.2) 

TASK [Stouts.postfix : Change DKIM key permissions] ******************************************************************************************************************************************
skipping: [192.168.56.2] => (item=192.168.56.2) 

TASK [Stouts.postfix : Configure opendkim pt. 1] *********************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Configure opendkim pt. 2] *********************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Configure opendkim pt. 3] *********************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Configure opendkim pt. 4] *********************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Configure opendkim pt. 5] *********************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Ensure /etc/postfix directory is owned by root user] ******************************************************************************************************************
ok: [192.168.56.2]

TASK [Stouts.postfix : Configure postfix pt. 1] **********************************************************************************************************************************************
ok: [192.168.56.2] => (item=main.cf)
ok: [192.168.56.2] => (item=master.cf)

TASK [Stouts.postfix : Configure postfix pt. 2] **********************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Configure postfix pt. 3] **********************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Configure postfix pt. 4] **********************************************************************************************************************************************
ok: [192.168.56.2]

TASK [Stouts.postfix : Configure postfix pt. 5] **********************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Configure postfix pt. 6] **********************************************************************************************************************************************
ok: [192.168.56.2]

TASK [Stouts.postfix : Configure postfix local user relay] ***********************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Configure postfix sender canonical maps] ******************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Configure SystemD] ****************************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Ensure Postfix service is enabled (systemd)] **************************************************************************************************************************
skipping: [192.168.56.2]

TASK [Stouts.postfix : Ensure Postfix is started] ********************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Set spatialite_path (Ubuntu >= 18.04 or Debian >= 10)] ************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Update APT package cache] *****************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Install system packages] ******************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Install redis 6 if available] *************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Install redis 5 if available] *************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [openwisp.openwisp2 : Install redis 4 (fallback)] ***************************************************************************************************************************************
skipping: [192.168.56.2]

TASK [openwisp.openwisp2 : set redis to listen on ipv4] **************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : start redis] ******************************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Install geographic libraries] *************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Install spatialite] ***********************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Install mod-spatialite (may fail on older linux distros)] *********************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Install acl if acting as non-root user] ***************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : ensure supervisor is started] *************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Install python3 packages] *****************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Install ntp] ******************************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Create default SSH key pair] **************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Get default private SSH key] **************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Get default public SSH key] ***************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Update pip & related tools] ***************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Remove jsonfield2] ************************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Set openwisp2_python_packages] ************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Set custom package list] ******************************************************************************************************************************************
skipping: [192.168.56.2] => (item=False) 
skipping: [192.168.56.2] => (item=False) 
skipping: [192.168.56.2] => (item=False) 
skipping: [192.168.56.2] => (item=False) 
skipping: [192.168.56.2] => (item=False) 
skipping: [192.168.56.2] => (item=False) 
skipping: [192.168.56.2] => (item=False) 

TASK [openwisp.openwisp2 : Add network_topology to custom package list if set and enabled] ***************************************************************************************************
skipping: [192.168.56.2] => (item=False) 

TASK [openwisp.openwisp2 : Add firmware_upgrader to custom package list if set and enabled] **************************************************************************************************
skipping: [192.168.56.2] => (item=False) 

TASK [openwisp.openwisp2 : Install openwisp2 controller and its dependencies] ****************************************************************************************************************
changed: [192.168.56.2]

TASK [openwisp.openwisp2 : Pin channels_redis to 2.4 for redis 4 compatibility] **************************************************************************************************************
changed: [192.168.56.2]

TASK [openwisp.openwisp2 : Install django-redis] *********************************************************************************************************************************************
ok: [192.168.56.2]

TASK [openwisp.openwisp2 : Install openwisp2 network topology and its dependencies] **********************************************************************************************************
skipping: [192.168.56.2]

TASK [openwisp.openwisp2 : Install openwisp firmware upgrader and its dependencies] **********************************************************************************************************
skipping: [192.168.56.2]

TASK [openwisp.openwisp2 : Install extra python packages] ************************************************************************************************************************************
FAILED - RETRYING: [192.168.56.2]: Install extra python packages (5 retries left).
FAILED - RETRYING: [192.168.56.2]: Install extra python packages (4 retries left).
FAILED - RETRYING: [192.168.56.2]: Install extra python packages (3 retries left).
FAILED - RETRYING: [192.168.56.2]: Install extra python packages (2 retries left).
FAILED - RETRYING: [192.168.56.2]: Install extra python packages (1 retries left).
fatal: [192.168.56.2]: FAILED! => {"attempts": 5, "changed": false, "cmd": ["/opt/openwisp2/env/bin/pip3", "install", "-U", "bpython"], "msg": "stdout: Collecting bpython\n  Using cached bpython-0.22.1-py3-none-any.whl (187 kB)\nCollecting pyxdg\n  Using cached pyxdg-0.27-py2.py3-none-any.whl (49 kB)\nCollecting cwcwidth\n  Using cached cwcwidth-0.1.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (52 kB)\nCollecting greenlet\n  Using cached greenlet-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (153 kB)\nRequirement already satisfied, skipping upgrade: typing-extensions in /opt/openwisp2/env/lib/python3.9/site-packages (from bpython) (4.0.1)\nRequirement already satisfied, skipping upgrade: requests in /usr/lib/python3/dist-packages (from bpython) (2.25.1)\nCollecting pygments\n  Using cached Pygments-2.11.1-py3-none-any.whl (1.1 MB)\nCollecting curtsies>=0.3.5\n  Using cached curtsies-0.3.10.tar.gz (53 kB)\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n    Preparing wheel metadata: started\n    Preparing wheel metadata: finished with status 'done'\nCollecting blessings>=1.5\n  Using cached blessings-1.7-py3-none-any.whl (18 kB)\nRequirement already satisfied, skipping upgrade: six in /usr/lib/python3/dist-packages (from blessings>=1.5->curtsies>=0.3.5->bpython) (1.16.0)\nBuilding wheels for collected packages: curtsies\n  Building wheel for curtsies (PEP 517): started\n  Building wheel for curtsies (PEP 517): finished with status 'error'\nFailed to build curtsies\n\n:stderr:   ERROR: Command errored out with exit status 1:\n   command: /opt/openwisp2/env/bin/python /opt/openwisp2/env/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmpuiejn_6b\n       cwd: /tmp/pip-install-zho6aulx/curtsies\n  Complete output (69 lines):\n  running bdist_wheel\n  running build\n  running build_py\n  creating build\n  creating build/lib\n  creating build/lib/curtsies\n  copying curtsies/curtsieskeys.py -> build/lib/curtsies\n  copying curtsies/__init__.py -> build/lib/curtsies\n  copying curtsies/configfile_keynames.py -> build/lib/curtsies\n  copying curtsies/escseqparse.py -> build/lib/curtsies\n  copying curtsies/fmtfuncs.py -> build/lib/curtsies\n  copying curtsies/formatstring.py -> build/lib/curtsies\n  copying curtsies/formatstringarray.py -> build/lib/curtsies\n  copying curtsies/termhelpers.py -> build/lib/curtsies\n  copying curtsies/window.py -> build/lib/curtsies\n  copying curtsies/input.py -> build/lib/curtsies\n  copying curtsies/termformatconstants.py -> build/lib/curtsies\n  copying curtsies/events.py -> build/lib/curtsies\n  copying curtsies/py.typed -> build/lib/curtsies\n  running install\n  running install_lib\n  Traceback (most recent call last):\n    File \"/opt/openwisp2/env/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py\", line 280, in <module>\n      main()\n    File \"/opt/openwisp2/env/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py\", line 263, in main\n      json_out['return_val'] = hook(**hook_input['kwargs'])\n    File \"/opt/openwisp2/env/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py\", line 204, in build_wheel\n      return _build_backend().build_wheel(wheel_directory, config_settings,\n    File \"/usr/lib/python3/dist-packages/setuptools/build_meta.py\", line 216, in build_wheel\n      return self._build_with_temp_dir(['bdist_wheel'], '.whl',\n    File \"/usr/lib/python3/dist-packages/setuptools/build_meta.py\", line 202, in _build_with_temp_dir\n      self.run_setup()\n    File \"/usr/lib/python3/dist-packages/setuptools/build_meta.py\", line 253, in run_setup\n      super(_BuildMetaLegacyBackend,\n    File \"/usr/lib/python3/dist-packages/setuptools/build_meta.py\", line 145, in run_setup\n      exec(compile(code, __file__, 'exec'), locals())\n    File \"setup.py\", line 14, in <module>\n      setup(\n    File \"/usr/lib/python3/dist-packages/setuptools/__init__.py\", line 153, in setup\n      return distutils.core.setup(**attrs)\n    File \"/usr/lib/python3/dist-packages/setuptools/_distutils/core.py\", line 148, in setup\n      dist.run_commands()\n    File \"/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py\", line 967, in run_commands\n      self.run_command(cmd)\n    File \"/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py\", line 986, in run_command\n      cmd_obj.run()\n    File \"/usr/lib/python3/dist-packages/wheel/bdist_wheel.py\", line 259, in run\n      self.run_command('install')\n    File \"/usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py\", line 313, in run_command\n      self.distribution.run_command(command)\n    File \"/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py\", line 986, in run_command\n      cmd_obj.run()\n    File \"/usr/lib/python3/dist-packages/setuptools/command/install.py\", line 61, in run\n      return orig.install.run(self)\n    File \"/usr/lib/python3/dist-packages/setuptools/_distutils/command/install.py\", line 578, in run\n      self.run_command(cmd_name)\n    File \"/usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py\", line 313, in run_command\n      self.distribution.run_command(command)\n    File \"/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py\", line 985, in run_command\n      cmd_obj.ensure_finalized()\n    File \"/usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py\", line 107, in ensure_finalized\n      self.finalize_options()\n    File \"/usr/lib/python3/dist-packages/setuptools/command/install_lib.py\", line 17, in finalize_options\n      self.set_undefined_options('install',('install_layout','install_layout'))\n    File \"/usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py\", line 290, in set_undefined_options\n      setattr(self, dst_option, getattr(src_cmd_obj, src_option))\n    File \"/usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py\", line 103, in __getattr__\n      raise AttributeError(attr)\n  AttributeError: install_layout\n  ----------------------------------------\n  ERROR: Failed building wheel for curtsies\nERROR: Could not build wheels for curtsies which use PEP 517 and cannot be installed directly\nWARNING: You are using pip version 20.2.4; however, version 21.3.1 is available.\nYou should consider upgrading via the '/opt/openwisp2/env/bin/python -m pip install --upgrade pip' command.\n"}

RUNNING HANDLER [openwisp.openwisp2 : reload supervisor] *************************************************************************************************************************************

PLAY RECAP ***********************************************************************************************************************************************************************************
192.168.56.2               : ok=30   changed=2    unreachable=0    failed=1    skipped=30   rescued=0    ignored=0 
@pandafy
Copy link
Member

pandafy commented Jan 26, 2022

@Lukas-J what is the Python version?

@Lukas-J
Copy link
Contributor Author

Lukas-J commented Jan 26, 2022

python3 --version
Python 3.9.2

@codingHahn
Copy link

We have the same problem when deploying openwisp to a clean debian 11.2 machine with python 3.9.2.

"msg": "stdout: Collecting bpython\n  Using cached bpython-0.22.1-py3-none-any.whl (187 kB)\nRequirement already satisfied, skipping upgrade: requests in /usr/lib/python3/dist-packages (from bpython) (2.25.1)\nCollecting greenlet\n  Using cached greenlet-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64."

when manually running pip install -U bpython in the venv, the following happens:

(env) root@sdebac1-openwisp:~# /opt/openwisp2/env/bin/pip install -U bpython
Collecting bpython
  Using cached bpython-0.22.1-py3-none-any.whl (187 kB)
Requirement already satisfied, skipping upgrade: typing-extensions in /opt/openwisp2/env/lib/python3.9/site-packages (from bpython) (4.1.1)
Collecting greenlet
  Using cached greenlet-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (153 kB)
Collecting cwcwidth
  Using cached cwcwidth-0.1.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (52 kB)
Collecting pyxdg
  Using cached pyxdg-0.27-py2.py3-none-any.whl (49 kB)
Requirement already satisfied, skipping upgrade: requests in /usr/lib/python3/dist-packages (from bpython) (2.25.1)
Collecting pygments
  Using cached Pygments-2.11.2-py3-none-any.whl (1.1 MB)
Collecting curtsies>=0.3.5
  Using cached curtsies-0.3.10.tar.gz (53 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting blessings>=1.5
  Using cached blessings-1.7-py3-none-any.whl (18 kB)
Requirement already satisfied, skipping upgrade: six in /usr/lib/python3/dist-packages (from blessings>=1.5->curtsies>=0.3.5->bpython) (1.16.0)
Building wheels for collected packages: curtsies
  Building wheel for curtsies (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: /opt/openwisp2/env/bin/python /opt/openwisp2/env/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmp2h3skzrc
       cwd: /tmp/pip-install-3adx1phr/curtsies
  Complete output (70 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib
  creating build/lib/curtsies
  copying curtsies/termformatconstants.py -> build/lib/curtsies
  copying curtsies/formatstringarray.py -> build/lib/curtsies
  copying curtsies/configfile_keynames.py -> build/lib/curtsies
  copying curtsies/fmtfuncs.py -> build/lib/curtsies
  copying curtsies/escseqparse.py -> build/lib/curtsies
  copying curtsies/events.py -> build/lib/curtsies
  copying curtsies/window.py -> build/lib/curtsies
  copying curtsies/formatstring.py -> build/lib/curtsies
  copying curtsies/__init__.py -> build/lib/curtsies
  copying curtsies/curtsieskeys.py -> build/lib/curtsies
  copying curtsies/termhelpers.py -> build/lib/curtsies
  copying curtsies/input.py -> build/lib/curtsies
  copying curtsies/py.typed -> build/lib/curtsies
  installing to build/bdist.linux-x86_64/wheel
  running install
  running install_lib
  Traceback (most recent call last):
    File "/opt/openwisp2/env/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 280, in <module>
      main()
    File "/opt/openwisp2/env/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 263, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "/opt/openwisp2/env/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 204, in build_wheel
      return _build_backend().build_wheel(wheel_directory, config_settings,
    File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 216, in build_wheel
      return self._build_with_temp_dir(['bdist_wheel'], '.whl',
    File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 202, in _build_with_temp_dir
      self.run_setup()
    File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 253, in run_setup
      super(_BuildMetaLegacyBackend,
    File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 145, in run_setup
      exec(compile(code, __file__, 'exec'), locals())
    File "[setup.py](http://setup.py/)", line 14, in <module>
      setup(
    File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 153, in setup
      return distutils.core.setup(**attrs)
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py", line 967, in run_commands
      self.run_command(cmd)
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py", line 986, in run_command
      cmd_obj.run()
    File "/usr/lib/python3/dist-packages/wheel/bdist_wheel.py", line 259, in run
      self.run_command('install')
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py", line 986, in run_command
      cmd_obj.run()
      File "/usr/lib/python3/dist-packages/setuptools/command/install.py", line 61, in run
      return orig.install.run(self)
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/command/install.py", line 578, in run
      self.run_command(cmd_name)
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py", line 985, in run_command
      cmd_obj.ensure_finalized()
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py", line 107, in ensure_finalized
      self.finalize_options()
    File "/usr/lib/python3/dist-packages/setuptools/command/install_lib.py", line 17, in finalize_options
      self.set_undefined_options('install',('install_layout','install_layout'))
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py", line 290, in set_undefined_options
      setattr(self, dst_option, getattr(src_cmd_obj, src_option))
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py", line 103, in __getattr__
      raise AttributeError(attr)
  AttributeError: install_layout
  ----------------------------------------
  ERROR: Failed building wheel for curtsies
Failed to build curtsies
ERROR: Could not build wheels for curtsies which use PEP 517 and cannot be installed directly
WARNING: You are using pip version 20.2.4; however, version 22.0.4 is available.
You should consider upgrading via the '/opt/openwisp2/env/bin/python -m pip install --upgrade pip' command.
(env) root@sdebac1-openwisp:~# 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants