pycurious icon indicating copy to clipboard operation
pycurious copied to clipboard

Linux install issues

Open mdtanker opened this issue 1 year ago • 1 comments

Thanks for making this package! I have been using it in Windows, but have needed to switch to Linux recently and I'm not able to install Pycurious anymore.

I'm creating a conda environment:

mamba create --name cpd numpy scipy cython python=3.7

activating it, then install pycurious with pip:

pip install pycurious

Here is the output:

Collecting pycurious
  Downloading pycurious-1.1.1.tar.gz (1.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 92.1 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy in /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages (from pycurious) (1.21.6)
Requirement already satisfied: scipy>=0.15.0 in /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages (from pycurious) (1.7.3)
Requirement already satisfied: Cython>=0.25.2 in /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages (from pycurious) (0.29.32)
Building wheels for collected packages: pycurious
  Building wheel for pycurious (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [73 lines of output]
      /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages/setuptools/dist.py:472: SetuptoolsDeprecationWarning: Invalid dash-separated options
      !!
      
              ********************************************************************************
              Usage of dash-separated 'description-file' will not be supported in future
              versions. Please use the underscore name 'description_file' instead.
      
              This deprecation is overdue, please update your project and remove deprecated
              calls to avoid build errors in the future.
      
              See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
              ********************************************************************************
      
      !!
        opt = self.warn_dash_deprecation(opt, section)
      /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages/setuptools/__init__.py:80: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
      !!
      
              ********************************************************************************
              Requirements should be satisfied by a PEP 517 installer.
              If you are using pip, you can try `pip install --use-pep517`.
              ********************************************************************************
      
      !!
        dist.fetch_build_eggs(dist.setup_requires)
      /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages/setuptools/dist.py:472: SetuptoolsDeprecationWarning: Invalid dash-separated options
      !!
      
              ********************************************************************************
              Usage of dash-separated 'description-file' will not be supported in future
              versions. Please use the underscore name 'description_file' instead.
      
              This deprecation is overdue, please update your project and remove deprecated
              calls to avoid build errors in the future.
      
              See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
              ********************************************************************************
      
      !!
        opt = self.warn_dash_deprecation(opt, section)
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-37
      creating build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/download.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/optimise.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/grid.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/mapping.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/documentation.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/__init__.py -> build/lib.linux-x86_64-cpython-37/pycurious
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples/data
      copying pycurious/Examples/data/test_mag_data.txt -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/data
      copying pycurious/Examples/0-StartHere.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Tanaka
      copying pycurious/Examples/Notebooks/Tanaka/Ex2-Compute-Curie-depth.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Tanaka
      copying pycurious/Examples/Notebooks/Tanaka/Ex1-Plot-power-spectrum.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Tanaka
      copying pycurious/Examples/Notebooks/Tanaka/Ex3-Parameter-exploration.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Tanaka
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex2-Compute-Curie-depth.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex1-Plot-power-spectrum.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex4-Spatial-variation-of-Curie-depth.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex5-Mapping-Curie-depth-EMAG2.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex3-Posing-the-inverse-problem.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      running build_ext
      building 'pycurious.radon' extension
      creating build/temp.linux-x86_64-cpython-37
      creating build/temp.linux-x86_64-cpython-37/src
      gcc -pthread -B /home/mattd/miniforge3/envs/cpd/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages/numpy/core/include -Isrc -I/home/mattd/miniforge3/envs/cpd/include/python3.7m -c src/cradon.c -o build/temp.linux-x86_64-cpython-37/src/cradon.o -std=c99
      error: command 'gcc' failed: No such file or directory: 'gcc'
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pycurious
  Running setup.py clean for pycurious
Failed to build pycurious
ERROR: Could not build wheels for pycurious, which is required to install pyproject.toml-based projects

From this issue: https://github.com/brmather/pycurious/issues/13, I also have tried installing gxx_linux-64

mamba install gxx_linux-64

And then when installing pycurious I now get the below output:

Collecting pycurious
  Downloading pycurious-1.1.1.tar.gz (1.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 88.2 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy in /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages (from pycurious) (1.21.6)
Requirement already satisfied: scipy>=0.15.0 in /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages (from pycurious) (1.7.3)
Requirement already satisfied: Cython>=0.25.2 in /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages (from pycurious) (0.29.32)
Building wheels for collected packages: pycurious
  Building wheel for pycurious (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [79 lines of output]
      /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages/setuptools/dist.py:472: SetuptoolsDeprecationWarning: Invalid dash-separated options
      !!
      
              ********************************************************************************
              Usage of dash-separated 'description-file' will not be supported in future
              versions. Please use the underscore name 'description_file' instead.
      
              This deprecation is overdue, please update your project and remove deprecated
              calls to avoid build errors in the future.
      
              See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
              ********************************************************************************
      
      !!
        opt = self.warn_dash_deprecation(opt, section)
      /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages/setuptools/__init__.py:80: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
      !!
      
              ********************************************************************************
              Requirements should be satisfied by a PEP 517 installer.
              If you are using pip, you can try `pip install --use-pep517`.
              ********************************************************************************
      
      !!
        dist.fetch_build_eggs(dist.setup_requires)
      /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages/setuptools/dist.py:472: SetuptoolsDeprecationWarning: Invalid dash-separated options
      !!
      
              ********************************************************************************
              Usage of dash-separated 'description-file' will not be supported in future
              versions. Please use the underscore name 'description_file' instead.
      
              This deprecation is overdue, please update your project and remove deprecated
              calls to avoid build errors in the future.
      
              See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
              ********************************************************************************
      
      !!
        opt = self.warn_dash_deprecation(opt, section)
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-37
      creating build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/download.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/optimise.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/grid.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/mapping.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/documentation.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/__init__.py -> build/lib.linux-x86_64-cpython-37/pycurious
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples/data
      copying pycurious/Examples/data/test_mag_data.txt -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/data
      copying pycurious/Examples/0-StartHere.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Tanaka
      copying pycurious/Examples/Notebooks/Tanaka/Ex2-Compute-Curie-depth.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Tanaka
      copying pycurious/Examples/Notebooks/Tanaka/Ex1-Plot-power-spectrum.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Tanaka
      copying pycurious/Examples/Notebooks/Tanaka/Ex3-Parameter-exploration.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Tanaka
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex2-Compute-Curie-depth.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex1-Plot-power-spectrum.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex4-Spatial-variation-of-Curie-depth.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex5-Mapping-Curie-depth-EMAG2.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex3-Posing-the-inverse-problem.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      running build_ext
      building 'pycurious.radon' extension
      creating build/temp.linux-x86_64-cpython-37
      creating build/temp.linux-x86_64-cpython-37/src
      /home/mattd/miniforge3/envs/cpd/bin/x86_64-conda-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -Wstrict-prototypes -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/mattd/miniforge3/envs/cpd/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/mattd/miniforge3/envs/cpd/include -fPIC -I/home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages/numpy/core/include -Isrc -I/home/mattd/miniforge3/envs/cpd/include/python3.7m -c src/cradon.c -o build/temp.linux-x86_64-cpython-37/src/cradon.o -std=c99
      In file included from src/cradon.h:6,
                       from src/cradon.c:2:
      /home/mattd/miniforge3/envs/cpd/include/python3.7m/Python.h:44:10: fatal error: crypt.h: No such file or directory
         44 | #include <crypt.h>
            |          ^~~~~~~~~
      compilation terminated.
      error: command '/home/mattd/miniforge3/envs/cpd/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pycurious
  Running setup.py clean for pycurious
Failed to build pycurious
ERROR: Could not build wheels for pycurious, which is required to install pyproject.toml-based projects

Any suggestions for how to get PyCurious to install?

mdtanker avatar Jan 07 '25 17:01 mdtanker

Ok from this issue: https://github.com/stanford-futuredata/ColBERT/issues/309 I tried installing libxcrypt before install pycurious. Now when installing pycurious I get the below:

Downloading pycurious-1.1.1.tar.gz (1.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 47.8 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy in /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages (from pycurious) (1.21.6)
Requirement already satisfied: scipy>=0.15.0 in /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages (from pycurious) (1.7.3)
Requirement already satisfied: Cython>=0.25.2 in /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages (from pycurious) (0.29.32)
Building wheels for collected packages: pycurious
  Building wheel for pycurious (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [77 lines of output]
      /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages/setuptools/dist.py:472: SetuptoolsDeprecationWarning: Invalid dash-separated options
      !!
      
              ********************************************************************************
              Usage of dash-separated 'description-file' will not be supported in future
              versions. Please use the underscore name 'description_file' instead.
      
              This deprecation is overdue, please update your project and remove deprecated
              calls to avoid build errors in the future.
      
              See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
              ********************************************************************************
      
      !!
        opt = self.warn_dash_deprecation(opt, section)
      /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages/setuptools/__init__.py:80: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
      !!
      
              ********************************************************************************
              Requirements should be satisfied by a PEP 517 installer.
              If you are using pip, you can try `pip install --use-pep517`.
              ********************************************************************************
      
      !!
        dist.fetch_build_eggs(dist.setup_requires)
      /home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages/setuptools/dist.py:472: SetuptoolsDeprecationWarning: Invalid dash-separated options
      !!
      
              ********************************************************************************
              Usage of dash-separated 'description-file' will not be supported in future
              versions. Please use the underscore name 'description_file' instead.
      
              This deprecation is overdue, please update your project and remove deprecated
              calls to avoid build errors in the future.
      
              See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
              ********************************************************************************
      
      !!
        opt = self.warn_dash_deprecation(opt, section)
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-37
      creating build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/download.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/optimise.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/grid.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/mapping.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/documentation.py -> build/lib.linux-x86_64-cpython-37/pycurious
      copying pycurious/__init__.py -> build/lib.linux-x86_64-cpython-37/pycurious
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples/data
      copying pycurious/Examples/data/test_mag_data.txt -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/data
      copying pycurious/Examples/0-StartHere.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Tanaka
      copying pycurious/Examples/Notebooks/Tanaka/Ex2-Compute-Curie-depth.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Tanaka
      copying pycurious/Examples/Notebooks/Tanaka/Ex1-Plot-power-spectrum.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Tanaka
      copying pycurious/Examples/Notebooks/Tanaka/Ex3-Parameter-exploration.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Tanaka
      creating build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex2-Compute-Curie-depth.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex1-Plot-power-spectrum.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex4-Spatial-variation-of-Curie-depth.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex5-Mapping-Curie-depth-EMAG2.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      copying pycurious/Examples/Notebooks/Bouligand/Ex3-Posing-the-inverse-problem.ipynb -> build/lib.linux-x86_64-cpython-37/pycurious/Examples/Notebooks/Bouligand
      running build_ext
      building 'pycurious.radon' extension
      creating build/temp.linux-x86_64-cpython-37
      creating build/temp.linux-x86_64-cpython-37/src
      /home/mattd/miniforge3/envs/cpd/bin/x86_64-conda-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -Wstrict-prototypes -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/mattd/miniforge3/envs/cpd/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/mattd/miniforge3/envs/cpd/include -fPIC -I/home/mattd/miniforge3/envs/cpd/lib/python3.7/site-packages/numpy/core/include -Isrc -I/home/mattd/miniforge3/envs/cpd/include/python3.7m -c src/cradon.c -o build/temp.linux-x86_64-cpython-37/src/cradon.o -std=c99
      src/cradon.c: In function 'radon2d':
      src/cradon.c:228:9: error: returning 'void *' from a function with return type 'int' makes integer from pointer without a cast [-Wint-conversion]
        228 |         import_array();  // to use PyArray_SimpleNewFromData
            |         ^~~~~~~~~~~~
      error: command '/home/mattd/miniforge3/envs/cpd/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pycurious
  Running setup.py clean for pycurious
Failed to build pycurious
ERROR: Could not build wheels for pycurious, which is required to install pyproject.toml-based projects

According to this SO answer: https://stackoverflow.com/a/55760680/18686384, I just changed import_array(); to _import_array(); on Line 228 of cradon.c https://github.com/brmather/pycurious/blob/9800f66e594f6d3bd18abb4aa97ba40927717578/src/cradon.c#L228

This appears to be working now. Any idea if adding that underscore will have any undesirable effects? The tests all passed.

mdtanker avatar Jan 07 '25 17:01 mdtanker