Linux install issues
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?
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.