ansible-openwisp2 icon indicating copy to clipboard operation
ansible-openwisp2 copied to clipboard

[bug] AttributeError: module 'numpy' has no attribute 'int'

Open niziak opened this issue 1 year ago • 3 comments

Describe the bug

Cannot install due to numpy incompatibility with networkx. AttributeError: module 'numpy' has no attribute 'int'

Ansible role openwisp.openwisp2 version 22.5.3

RUNNING HANDLER [openwisp.openwisp2 : migrate timeseries database] ***************************************************************************************************************************
task path: /home/niziak/.ansible/roles/openwisp.openwisp2/handlers/main.yml:22
redirecting (type: modules) ansible.builtin.django_manage to community.general.django_manage
redirecting (type: modules) ansible.builtin.django_manage to community.general.django_manage

fatal: [openwisp.lan.spox.org]: FAILED! =>

{
  "changed":false,
  "cmd":[
    "./manage.py",
    "migrate_timeseries"
  ],
  "msg":":stderr: 
Traceback (most recent call last):
  File \"/opt/openwisp2/./manage.py\", line 10, in <module>\n    execute_from_command_line(sys.argv)
  File \"/opt/openwisp2/env/lib/python3.11/site-packages/django/core/management/__init__.py\", line 419, in execute_from_command_line\n    utility.execute()
  File \"/opt/openwisp2/env/lib/python3.11/site-packages/django/core/management/__init__.py\", line 395, in execute
    django.setup()\n  File \"/opt/openwisp2/env/lib/python3.11/site-packages/django/__init__.py\", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File \"/opt/openwisp2/env/lib/python3.11/site-packages/django/apps/registry.py\", line 114, in populate
    app_config.import_models()
  File \"/opt/openwisp2/env/lib/python3.11/site-packages/django/apps/config.py\", line 301, in import_models
    self.models_module = import_module(models_module_name)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File \"/usr/lib/python3.11/importlib/__init__.py\", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File \"<frozen importlib._bootstrap>\", line 1206, in _gcd_import
  File \"<frozen importlib._bootstrap>\", line 1178, in _find_and_load
  File \"<frozen importlib._bootstrap>\", line 1149, in _find_and_load_unlocked
  File \"<frozen importlib._bootstrap>\", line 690, in _load_unlocked
  File \"<frozen importlib._bootstrap_external>\", line 940, in exec_module
  File \"<frozen importlib._bootstrap>\", line 241, in _call_with_frames_removed
  File \"/opt/openwisp2/env/lib/python3.11/site-packages/openwisp_network_topology/models.py\", line 6, in <module>
    from .base.topology import AbstractTopology
  File \"/opt/openwisp2/env/lib/python3.11/site-packages/openwisp_network_topology/base/topology.py\", line 12, in <module>
    from netdiff import NetJsonParser, diff
  File \"/opt/openwisp2/env/lib/python3.11/site-packages/netdiff/__init__.py\", line 2, in <module>
    from .parsers.batman import BatmanParser  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File \"/opt/openwisp2/env/lib/python3.11/site-packages/netdiff/parsers/batman.py\", line 2, in <module>
    from .base import BaseParser
  File \"/opt/openwisp2/env/lib/python3.11/site-packages/netdiff/parsers/base.py\", line 4, in <module>
    import networkx
  File \"/opt/openwisp2/env/lib/python3.11/site-packages/networkx/__init__.py\", line 115, in <module>
    import networkx.readwrite
  File \"/opt/openwisp2/env/lib/python3.11/site-packages/networkx/readwrite/__init__.py\", line 15, in <module>
    from networkx.readwrite.graphml import *
  File \"/opt/openwisp2/env/lib/python3.11/site-packages/networkx/readwrite/graphml.py\", line 314, in <module>
    class GraphML(object):
  File \"/opt/openwisp2/env/lib/python3.11/site-packages/networkx/readwrite/graphml.py\", line 346, in GraphML
    (np.int, \"int\"), (np.int8, \"int\"),
     ^^^^^^
  File \"/usr/lib/python3/dist-packages/numpy/__init__.py\", line 305, in __getattr__
    raise AttributeError(__former_attrs__[attr])
AttributeError: module 'numpy' has no attribute 'int'.
`np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:\n    https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations. Did you mean: 'inf'?
",
  "path":"/opt/openwisp2/env/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
  "syspath":[
    "/tmp/ansible_django_manage_payload_z25qg24_/ansible_django_manage_payload.zip",
    "/usr/lib/python311.zip",
    "/usr/lib/python3.11",
    "/usr/lib/python3.11/lib-dynload",
    "/usr/local/lib/python3.11/dist-packages",
    "/usr/lib/python3/dist-packages",
    "/usr/lib/python3.11/dist-packages"
  ]
}

Steps To Reproduce

  1. On fresh LXC Debian 12
  2. Try to install using latest ansible role

Expected behavior venv is used so all packages should have pinned or bounded versions to prevent such problems.

When numpy is downgraded in venv:

/opt/openwisp2/env/bin/pip install numpy==1.23.5

then ansible role can be started again and everything works.

niziak avatar Sep 23 '24 19:09 niziak

Try with the latest master, the latest released version is not compatible with Debian 12.

nemesifier avatar Sep 23 '24 20:09 nemesifier

Same error, Debian 12. Did you resolve this by using Master?

supersebbo avatar Oct 09 '24 07:10 supersebbo

Same error, Debian 12. Did you resolve this by using Master?

The 22.05 release is not compatible with Debian 12. Use the development version as already suggested.

nemesifier avatar Oct 09 '24 18:10 nemesifier

Should be fixed in the latest release. Please repoen if that's not the case. Thanks.

nemesifier avatar May 10 '25 23:05 nemesifier