Disvis PyArray XDECREF error

hello,
I have installed Disvis on a Linux system with python2.7.17 using

python setup.py install

The installation completes successfully but with the following warning:

src/_extensions.c:194:5: warning: implicit declaration of function ‘PyArray_XDECREF_ERR’; did you mean ‘PyArray_XDECREF’? [-Wimplicit-function-declaration]
PyArray_XDECREF_ERR(py_out);
^~~~~~~~~~~~~~~~~~~
PyArray_XDECREF

When I then try to run disvis, i get the error:

Traceback (most recent call last):
  File "/home/andrea/software/anaconda2/bin/disvis", line 11, in <module>
    load_entry_point('disvis==2.0.0', 'console_scripts', 'disvis')()
  File "/home/andrea/software/anaconda2/lib/python2.7/site-packages/pkg_resources/__init__.py", line 489, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/home/andrea/software/anaconda2/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2852, in load_entry_point
    return ep.load()
  File "/home/andrea/software/anaconda2/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2443, in load
    return self.resolve()
  File "/home/andrea/software/anaconda2/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2449, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/home/andrea/software/anaconda2/lib/python2.7/site-packages/disvis-2.0.0-py2.7-linux-x86_64.egg/disvis/__init__.py", line 1, in <module>
    from .disvis import DisVis
  File "/home/andrea/software/anaconda2/lib/python2.7/site-packages/disvis-2.0.0-py2.7-linux-x86_64.egg/disvis/disvis.py", line 27, in <module>
    from ._extensions import rotate_grid3d
ImportError: /home/andrea/software/anaconda2/lib/python2.7/site-packages/disvis-2.0.0-py2.7-linux-x86_64.egg/disvis/_extensions.so: undefined symbol: PyArray_XDECREF_ERR

Did you install all dependencies?

Note that there is also a docker version available. Check:

https://hub.docker.com/r/indigodatacloudapps/disvis

I thought the dependencies were only python2.7 and NumPy , and the rest is only required for gpu/cpu acceleration?
I have installed the additional packages for cpu acceleration and reinstalled disvis, but the problem persists… I wonder if it is my anaconda set up. In any case, I will switch to docker.

The compilation warning seems to be in the rotate_grid3d function.

Here is gthe full list output of installation

reating build/temp.linux-x86_64-2.7/src
/home/andrea/software/anaconda2/bin/x86_64-conda_cos6-linux-gnu-cc -fno-strict-aliasing -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -DNDEBUG -fwrapv -O3 -Wall -Wstrict-prototypes -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -fPIC -I/home/andrea/software/anaconda2/lib/python2.7/site-packages/numpy/core/include -I/home/andrea/software/anaconda2/include/python2.7 -c src/libdisvis.c -o build/temp.linux-x86_64-2.7/src/libdisvis.o -ffast-math
In file included from /home/andrea/software/anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1824:0,
                 from /home/andrea/software/anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                 from /home/andrea/software/anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                 from src/libdisvis.c:283:
/home/andrea/software/anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
 #warning "Using deprecated NumPy API, disable it with " \
  ^~~~~~~
In file included from /home/andrea/software/anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:21:0,
                 from /home/andrea/software/anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                 from src/libdisvis.c:283:
/home/andrea/software/anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/__multiarray_api.h:1463:1: warning: '_import_array' defined but not used [-Wunused-function]
 _import_array(void)
 ^~~~~~~~~~~~~
x86_64-conda_cos6-linux-gnu-gcc -pthread -shared -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-rpath,/home/andrea/software/anaconda2/lib -L/home/andrea/software/anaconda2/lib -Wl,--no-as-needed -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 build/temp.linux-x86_64-2.7/src/libdisvis.o -L/home/andrea/software/anaconda2/lib -lpython2.7 -o build/lib.linux-x86_64-2.7/disvis/libdisvis.so
building 'disvis._extensions' extension
/home/andrea/software/anaconda2/bin/x86_64-conda_cos6-linux-gnu-cc -fno-strict-aliasing -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -DNDEBUG -fwrapv -O3 -Wall -Wstrict-prototypes -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -fPIC -I/home/andrea/software/anaconda2/lib/python2.7/site-packages/numpy/core/include -I/home/andrea/software/anaconda2/include/python2.7 -c src/_extensions.c -o build/temp.linux-x86_64-2.7/src/_extensions.o -ffast-math
src/_extensions.c: In function 'rotate_grid3d':
src/_extensions.c:194:5: warning: implicit declaration of function 'PyArray_XDECREF_ERR'; did you mean 'PyArray_XDECREF'? [-Wimplicit-function-declaration]
     PyArray_XDECREF_ERR(py_out);
     ^~~~~~~~~~~~~~~~~~~
     PyArray_XDECREF
x86_64-conda_cos6-linux-gnu-gcc -pthread -shared -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-rpath,/home/andrea/software/anaconda2/lib -L/home/andrea/software/anaconda2/lib -Wl,--no-as-needed -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 build/temp.linux-x86_64-2.7/src/_extensions.o -L/home/andrea/software/anaconda2/lib -lpython2.7 -o build/lib.linux-x86_64-2.7/disvis/_extensions.so
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/disvis
copying build/lib.linux-x86_64-2.7/disvis/disvis.py -> build/bdist.linux-x86_64/egg/disvis
copying build/lib.linux-x86_64-2.7/disvis/elements.py -> build/bdist.linux-x86_64/egg/disvis
copying build/lib.linux-x86_64-2.7/disvis/helpers.py -> build/bdist.linux-x86_64/egg/disvis
copying build/lib.linux-x86_64-2.7/disvis/pdb.py -> build/bdist.linux-x86_64/egg/disvis
copying build/lib.linux-x86_64-2.7/disvis/libdisvis.so -> build/bdist.linux-x86_64/egg/disvis
copying build/lib.linux-x86_64-2.7/disvis/kernels.cl -> build/bdist.linux-x86_64/egg/disvis
copying build/lib.linux-x86_64-2.7/disvis/_extensions.so -> build/bdist.linux-x86_64/egg/disvis
creating build/bdist.linux-x86_64/egg/disvis/IO
copying build/lib.linux-x86_64-2.7/disvis/IO/pdb.py -> build/bdist.linux-x86_64/egg/disvis/IO
copying build/lib.linux-x86_64-2.7/disvis/IO/mrc.py -> build/bdist.linux-x86_64/egg/disvis/IO
copying build/lib.linux-x86_64-2.7/disvis/IO/mmcif.py -> build/bdist.linux-x86_64/egg/disvis/IO
copying build/lib.linux-x86_64-2.7/disvis/IO/__init__.py -> build/bdist.linux-x86_64/egg/disvis/IO
copying build/lib.linux-x86_64-2.7/disvis/main.py -> build/bdist.linux-x86_64/egg/disvis
copying build/lib.linux-x86_64-2.7/disvis/kernels.py -> build/bdist.linux-x86_64/egg/disvis
copying build/lib.linux-x86_64-2.7/disvis/volume.py -> build/bdist.linux-x86_64/egg/disvis
copying build/lib.linux-x86_64-2.7/disvis/__init__.py -> build/bdist.linux-x86_64/egg/disvis
copying build/lib.linux-x86_64-2.7/disvis/pyclfft.py -> build/bdist.linux-x86_64/egg/disvis
creating build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u83.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c600vc.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u1153.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48n9.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48n527.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u4749.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c600v.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u2219.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u7111.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u181.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u27.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u1641.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u1201.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u3733.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u2947.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/E.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u1.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u8649.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u5879.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48n309.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/data/c48u815.npy -> build/bdist.linux-x86_64/egg/disvis/data
copying build/lib.linux-x86_64-2.7/disvis/rotations.py -> build/bdist.linux-x86_64/egg/disvis
byte-compiling build/bdist.linux-x86_64/egg/disvis/disvis.py to disvis.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/elements.py to elements.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/helpers.py to helpers.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/pdb.py to pdb.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/IO/pdb.py to pdb.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/IO/mrc.py to mrc.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/IO/mmcif.py to mmcif.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/IO/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/main.py to main.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/kernels.py to kernels.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/volume.py to volume.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/pyclfft.py to pyclfft.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/rotations.py to rotations.pyc
creating stub loader for disvis/libdisvis.so
creating stub loader for disvis/_extensions.so
byte-compiling build/bdist.linux-x86_64/egg/disvis/libdisvis.py to libdisvis.pyc
byte-compiling build/bdist.linux-x86_64/egg/disvis/_extensions.py to _extensions.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying disvis.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying disvis.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying disvis.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying disvis.egg-info/entry_points.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying disvis.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying disvis.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
writing build/bdist.linux-x86_64/egg/EGG-INFO/native_libs.txt
zip_safe flag not set; analyzing archive contents...
disvis.kernels: module references __file__
disvis.rotations: module references __file__
creating dist
creating 'dist/disvis-2.0.0-py2.7-linux-x86_64.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing disvis-2.0.0-py2.7-linux-x86_64.egg
removing '/home/andrea/software/anaconda2/lib/python2.7/site-packages/disvis-2.0.0-py2.7-linux-x86_64.egg' (and everything under it)
creating /home/andrea/software/anaconda2/lib/python2.7/site-packages/disvis-2.0.0-py2.7-linux-x86_64.egg
Extracting disvis-2.0.0-py2.7-linux-x86_64.egg to /home/andrea/software/anaconda2/lib/python2.7/site-packages
disvis 2.0.0 is already the active version in easy-install.pth
Installing disvis script to /home/andrea/software/anaconda2/bin

Installed /home/andrea/software/anaconda2/lib/python2.7/site-packages/disvis-2.0.0-py2.7-linux-x86_64.egg
Processing dependencies for disvis==2.0.0
Searching for numpy==1.16.2
Best match: numpy 1.16.2
Adding numpy 1.16.2 to easy-install.pth file
Installing f2py2 script to /home/andrea/software/anaconda2/bin
Installing f2py script to /home/andrea/software/anaconda2/bin
Installing f2py2.7 script to /home/andrea/software/anaconda2/bin

Using /home/andrea/software/anaconda2/lib/python2.7/site-packages
Finished processing dependencies for disvis==2.0.0

Hi Andrea

The code has a dependency on an older version on NumPy. This has now been updated.
You should pull again from the Git repo and reinstall.

Cheers
Alexandre

Indeed it works now! Thank you!

Andrea

Perfect! :slight_smile: