bhargavchippada / forceatlas2

Fastest Gephi's ForceAtlas2 graph layout algorithm implemented for Python and NetworkX
GNU General Public License v3.0
280 stars 80 forks source link

Installation issue on Ubuntu 22.04 #39

Open ivan-marroquin opened 1 year ago

ivan-marroquin commented 1 year ago

Hi,

Many thanks for making available this great package!

I have Ubuntu 22.04 and I am using Python 3.9.0.

I tried the pip command installation without success. Then, I tried to compile it and got these error messages:

python3 setup.py install

Installing fa2 package (fastest forceatlas2 python implementation)

Cython is installed? Yes

Starting to install!

running install /home/ivan/python_3.9.0/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( /home/ivan/python_3.9.0/lib/python3.9/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. warnings.warn( running bdist_egg running egg_info creating fa2.egg-info writing fa2.egg-info/PKG-INFO writing dependency_links to fa2.egg-info/dependency_links.txt writing requirements to fa2.egg-info/requires.txt writing top-level names to fa2.egg-info/top_level.txt writing manifest file 'fa2.egg-info/SOURCES.txt' reading manifest file 'fa2.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' adding license file 'LICENSE' writing manifest file 'fa2.egg-info/SOURCES.txt' installing library code to build/bdist.linux-x86_64/egg running install_lib running build_py creating build creating build/lib.linux-x86_64-cpython-39 creating build/lib.linux-x86_64-cpython-39/fa2 copying fa2/fa2util.py -> build/lib.linux-x86_64-cpython-39/fa2 copying fa2/forceatlas2.py -> build/lib.linux-x86_64-cpython-39/fa2 copying fa2/init.py -> build/lib.linux-x86_64-cpython-39/fa2 copying fa2/fa2util.c -> build/lib.linux-x86_64-cpython-39/fa2 copying fa2/fa2util.pxd -> build/lib.linux-x86_64-cpython-39/fa2 running build_ext skipping 'fa2/fa2util.c' Cython extension (up-to-date) building 'fa2.fa2util' extension creating build/temp.linux-x86_64-cpython-39 creating build/temp.linux-x86_64-cpython-39/fa2 gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/home/ivan/python_3.9.0/include/python3.9 -c fa2/fa2util.c -o build/temp.linux-x86_64-cpython-39/fa2/fa2util.o fa2/fa2util.c: In function ‘Pyx_ParseOptionalKeywords’: fa2/fa2util.c:12107:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 12107 | (PyUnicode_GET_SIZE(name) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /home/ivan/python_3.9.0/include/python3.9/unicodeobject.h:1026, from /home/ivan/python_3.9.0/include/python3.9/Python.h:97, from fa2/fa2util.c:4: /home/ivan/python_3.9.0/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~ fa2/fa2util.c:12107:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] 12107 | (PyUnicode_GET_SIZE(*name) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /home/ivan/python_3.9.0/include/python3.9/unicodeobject.h:1026, from /home/ivan_phd/python_3.9.0/include/python3.9/Python.h:97, from fa2/fa2util.c:4: /home/ivan/python_3.9.0/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here 580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE ) PyUnicode_AsUnicode( | ^~~~~~~ fa2/fa2util.c:12107:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 12107 | (PyUnicode_GET_SIZE(name) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /home/ivan/python_3.9.0/include/python3.9/unicodeobject.h:1026, from /home/ivan_phd/python_3.9.0/include/python3.9/Python.h:97, from fa2/fa2util.c:4: /home/ivan/python_3.9.0/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~ fa2/fa2util.c:12107:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 12107 | (PyUnicode_GET_SIZE(name) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /home/ivan/python_3.9.0/include/python3.9/unicodeobject.h:1026, from /home/ivan_phd/python_3.9.0/include/python3.9/Python.h:97, from fa2/fa2util.c:4: /home/ivan/python_3.9.0/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~ fa2/fa2util.c:12107:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] 12107 | (PyUnicode_GET_SIZE(*name) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /home/ivan/python_3.9.0/include/python3.9/unicodeobject.h:1026, from /home/ivan_phd/python_3.9.0/include/python3.9/Python.h:97, from fa2/fa2util.c:4: /home/ivan/python_3.9.0/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here 580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE ) PyUnicode_AsUnicode( | ^~~~~~~ fa2/fa2util.c:12107:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 12107 | (PyUnicode_GET_SIZE(name) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /home/ivan/python_3.9.0/include/python3.9/unicodeobject.h:1026, from /home/ivan/python_3.9.0/include/python3.9/Python.h:97, from fa2/fa2util.c:4: /home/ivan/python_3.9.0/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~ fa2/fa2util.c:12123:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 12123 | (PyUnicode_GET_SIZE(argname) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /home/ivan/python_3.9.0/include/python3.9/unicodeobject.h:1026, from /home/ivan/python_3.9.0/include/python3.9/Python.h:97, from fa2/fa2util.c:4: /home/ivan/python_3.9.0/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~ fa2/fa2util.c:12123:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] 12123 | (PyUnicode_GET_SIZE(*argname) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /home/ivan/python_3.9.0/include/python3.9/unicodeobject.h:1026, from /home/ivan/python_3.9.0/include/python3.9/Python.h:97, from fa2/fa2util.c:4: /home/ivan/python_3.9.0/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here 580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE ) PyUnicode_AsUnicode( | ^~~~~~~ fa2/fa2util.c:12123:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 12123 | (PyUnicode_GET_SIZE(argname) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /home/ivan/python_3.9.0/include/python3.9/unicodeobject.h:1026, from /home/ivan/python_3.9.0/include/python3.9/Python.h:97, from fa2/fa2util.c:4: /home/ivan/python_3.9.0/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~ fa2/fa2util.c:12123:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 12123 | (PyUnicode_GET_SIZE(argname) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /home/ivan/python_3.9.0/include/python3.9/unicodeobject.h:1026, from /home/ivan_phd/python_3.9.0/include/python3.9/Python.h:97, from fa2/fa2util.c:4: /home/ivan/python_3.9.0/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~ fa2/fa2util.c:12123:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] 12123 | (PyUnicode_GET_SIZE(*argname) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /home/ivan/python_3.9.0/include/python3.9/unicodeobject.h:1026, from /home/ivan/python_3.9.0/include/python3.9/Python.h:97, from fa2/fa2util.c:4: /home/ivan/python_3.9.0/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here 580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE ) PyUnicode_AsUnicode( | ^~~~~~~ fa2/fa2util.c:12123:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 12123 | (PyUnicode_GET_SIZE(argname) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /home/ivan/python_3.9.0/include/python3.9/unicodeobject.h:1026, from /home/ivan/python_3.9.0/include/python3.9/Python.h:97, from fa2/fa2util.c:4: /home/ivan/python_3.9.0/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~ gcc -shared build/temp.linux-x86_64-cpython-39/fa2/fa2util.o -o build/lib.linux-x86_64-cpython-39/fa2/fa2util.cpython-39-x86_64-linux-gnu.so creating build/bdist.linux-x86_64 creating build/bdist.linux-x86_64/egg creating build/bdist.linux-x86_64/egg/fa2 copying build/lib.linux-x86_64-cpython-39/fa2/fa2util.py -> build/bdist.linux-x86_64/egg/fa2 copying build/lib.linux-x86_64-cpython-39/fa2/fa2util.cpython-39-x86_64-linux-gnu.so -> build/bdist.linux-x86_64/egg/fa2 copying build/lib.linux-x86_64-cpython-39/fa2/fa2util.pxd -> build/bdist.linux-x86_64/egg/fa2 copying build/lib.linux-x86_64-cpython-39/fa2/fa2util.c -> build/bdist.linux-x86_64/egg/fa2 copying build/lib.linux-x86_64-cpython-39/fa2/forceatlas2.py -> build/bdist.linux-x86_64/egg/fa2 copying build/lib.linux-x86_64-cpython-39/fa2/init.py -> build/bdist.linux-x86_64/egg/fa2 byte-compiling build/bdist.linux-x86_64/egg/fa2/fa2util.py to fa2util.cpython-39.pyc byte-compiling build/bdist.linux-x86_64/egg/fa2/forceatlas2.py to forceatlas2.cpython-39.pyc byte-compiling build/bdist.linux-x86_64/egg/fa2/init.py to init__.cpython-39.pyc creating stub loader for fa2/fa2util.cpython-39-x86_64-linux-gnu.so creating build/bdist.linux-x86_64/egg/EGG-INFO copying fa2.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO copying fa2.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO copying fa2.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO copying fa2.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO copying fa2.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... creating dist creating 'dist/fa2-0.3.5-py3.9-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 fa2-0.3.5-py3.9-linux-x86_64.egg Copying fa2-0.3.5-py3.9-linux-x86_64.egg to /home/ivan_phd/python_3.9.0/lib/python3.9/site-packages Adding fa2 0.3.5 to easy-install.pth file

Installed /home/ivan/python_3.9.0/lib/python3.9/site-packages/fa2-0.3.5-py3.9-linux-x86_64.egg Processing dependencies for fa2==0.3.5 Searching for tqdm==4.64.1 Best match: tqdm 4.64.1 Adding tqdm 4.64.1 to easy-install.pth file Installing tqdm script to /home/ivan_phd/python_3.9.0/bin

Using /home/ivan/python_3.9.0/lib/python3.9/site-packages Searching for scipy==1.9.1 Best match: scipy 1.9.1 Adding scipy 1.9.1 to easy-install.pth file

Using /home/ivan/python_3.9.0/lib/python3.9/site-packages Searching for numpy==1.23.3 Best match: numpy 1.23.3 Adding numpy 1.23.3 to easy-install.pth file Installing f2py script to /home/ivan_phd/python_3.9.0/bin Installing f2py3 script to /home/ivan_phd/python_3.9.0/bin Installing f2py3.9 script to /home/ivan_phd/python_3.9.0/bin

Using /home/ivan/python_3.9.0/lib/python3.9/site-packages Finished processing dependencies for fa2==0.3.5

Any suggestions?

Best regards,

Ivan

irahorecka commented 1 year ago

Hey @ivan-marroquin, I was having the exact same issue as you. Check out the response by @ojdo in https://github.com/bhargavchippada/forceatlas2/issues/34. This worked for me.

On a side note, make sure networkx version is < 3

ivan-marroquin commented 1 year ago

Thanks @irahorecka for letting me know about this solution. I will give it a try.

ivan-marroquin commented 1 year ago

Hi @irahorecka

I gave it a try, and got this error message:

fa2/fa2util.c:4:10: fatal error: Python.h: No such file or directory 4 | #include "Python.h"

I found this ticket in Stack Overflow: https://stackoverflow.com/questions/21530577/fatal-error-python-h-no-such-file-or-directory

The error message is still there. Did you encounter this issue?

Thanks, Ivan

irahorecka commented 1 year ago

I did not! What Python version are you running? I'm running Python 3.10.6 on Ubuntu 22.04.2 LTS.

ivan-marroquin commented 1 year ago

I am using Python 3.9.0 and I compiled it from its code source. I guess that I need to compile a new version of Python