Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error creating python wrapper #81

Open
mdp0023 opened this issue Jun 20, 2024 · 0 comments
Open

Error creating python wrapper #81

mdp0023 opened this issue Jun 20, 2024 · 0 comments

Comments

@mdp0023
Copy link

mdp0023 commented Jun 20, 2024

I was trying to run FSM using the python wrapper and came across two issues.

  1. Found an issue with dashes versus underscores in setup.cfg due to depreciation from setuptools (suggested fix in pull request Update setup.cfg #80)

  2. Issue with "generate_perlin_terrain"
    I executed the following in the terminal:

git clone --recursive https://github.com/r-barnes/richdem.git ghrichdem
cd ghrichdem/wrappers/pyrichdem
pip install .

and received an error message associated with geonerate_perlin_terrain. I was able to create the wrappers by commenting out line 137 of the ../ghichdem/wrappers/pyrichdem/src/pyrapper.cpp file, which is this line:

m.def("generate_perlin_terrain", &richdem::generate_perlin_terrain, "Generate random terrain using perlin noise", py::arg("array"), py::arg("seed"));

I'm not sure what is causing the error, or its overall impact on the wrappers. The complete error message is below:

Details

× Building wheel for richdem (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [40 lines of output]
      Using RichDEM hash=eb7bac6, time=2024-05-22 09:51:05 -0700
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-311
      creating build/lib.linux-x86_64-cpython-311/richdem
      copying richdem/cli.py -> build/lib.linux-x86_64-cpython-311/richdem
      copying richdem/__init__.py -> build/lib.linux-x86_64-cpython-311/richdem
      running build_ext
      COMPILER unix
      COMPILER ARGUMENTS: ['-std=c++17', '-g', '-fvisibility=hidden', '-O3', '-Wno-unknown-pragmas']
      building '_richdem' extension
      creating build/temp.linux-x86_64-cpython-311
      creating build/temp.linux-x86_64-cpython-311/lib
      creating build/temp.linux-x86_64-cpython-311/lib/richdem
      creating build/temp.linux-x86_64-cpython-311/lib/richdem/src
      creating build/temp.linux-x86_64-cpython-311/lib/richdem/src/terrain_generation
      creating build/temp.linux-x86_64-cpython-311/src
      /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -fPIC -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -fPIC -DDOCTEST_CONFIG_DISABLE "-DRICHDEM_COMPILE_TIME=\"\\\"2024-05-22 09:51:05 -0700\\\"\"" -DRICHDEM_GIT_HASH=\"\\\"eb7bac6\\\"\" -D_USE_MATH_DEFINES -Ilib/richdem/include -I/tmp/pip-build-env-tzo0r9gt/overlay/lib/python3.11/site-packages/pybind11/include -I/home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include/python3.11 -c lib/richdem/src/gdal.cpp -o build/temp.linux-x86_64-cpython-311/lib/richdem/src/gdal.o -std=c++17 -g -fvisibility=hidden -O3 -Wno-unknown-pragmas
      /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -fPIC -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -fPIC -DDOCTEST_CONFIG_DISABLE "-DRICHDEM_COMPILE_TIME=\"\\\"2024-05-22 09:51:05 -0700\\\"\"" -DRICHDEM_GIT_HASH=\"\\\"eb7bac6\\\"\" -D_USE_MATH_DEFINES -Ilib/richdem/include -I/tmp/pip-build-env-tzo0r9gt/overlay/lib/python3.11/site-packages/pybind11/include -I/home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include/python3.11 -c lib/richdem/src/random.cpp -o build/temp.linux-x86_64-cpython-311/lib/richdem/src/random.o -std=c++17 -g -fvisibility=hidden -O3 -Wno-unknown-pragmas
      /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -fPIC -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -fPIC -DDOCTEST_CONFIG_DISABLE "-DRICHDEM_COMPILE_TIME=\"\\\"2024-05-22 09:51:05 -0700\\\"\"" -DRICHDEM_GIT_HASH=\"\\\"eb7bac6\\\"\" -D_USE_MATH_DEFINES -Ilib/richdem/include -I/tmp/pip-build-env-tzo0r9gt/overlay/lib/python3.11/site-packages/pybind11/include -I/home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include/python3.11 -c lib/richdem/src/richdem.cpp -o build/temp.linux-x86_64-cpython-311/lib/richdem/src/richdem.o -std=c++17 -g -fvisibility=hidden -O3 -Wno-unknown-pragmas
      /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -fPIC -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -fPIC -DDOCTEST_CONFIG_DISABLE "-DRICHDEM_COMPILE_TIME=\"\\\"2024-05-22 09:51:05 -0700\\\"\"" -DRICHDEM_GIT_HASH=\"\\\"eb7bac6\\\"\" -D_USE_MATH_DEFINES -Ilib/richdem/include -I/tmp/pip-build-env-tzo0r9gt/overlay/lib/python3.11/site-packages/pybind11/include -I/home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include/python3.11 -c lib/richdem/src/terrain_generation/PerlinNoise.cpp -o build/temp.linux-x86_64-cpython-311/lib/richdem/src/terrain_generation/PerlinNoise.o -std=c++17 -g -fvisibility=hidden -O3 -Wno-unknown-pragmas
      /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -fPIC -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -fPIC -DDOCTEST_CONFIG_DISABLE "-DRICHDEM_COMPILE_TIME=\"\\\"2024-05-22 09:51:05 -0700\\\"\"" -DRICHDEM_GIT_HASH=\"\\\"eb7bac6\\\"\" -D_USE_MATH_DEFINES -Ilib/richdem/include -I/tmp/pip-build-env-tzo0r9gt/overlay/lib/python3.11/site-packages/pybind11/include -I/home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include/python3.11 -c lib/richdem/src/terrain_generation/terrain_generation.cpp -o build/temp.linux-x86_64-cpython-311/lib/richdem/src/terrain_generation/terrain_generation.o -std=c++17 -g -fvisibility=hidden -O3 -Wno-unknown-pragmas
      /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -fPIC -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include -fPIC -DDOCTEST_CONFIG_DISABLE "-DRICHDEM_COMPILE_TIME=\"\\\"2024-05-22 09:51:05 -0700\\\"\"" -DRICHDEM_GIT_HASH=\"\\\"eb7bac6\\\"\" -D_USE_MATH_DEFINES -Ilib/richdem/include -I/tmp/pip-build-env-tzo0r9gt/overlay/lib/python3.11/site-packages/pybind11/include -I/home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/include/python3.11 -c src/pywrapper.cpp -o build/temp.linux-x86_64-cpython-311/src/pywrapper.o -std=c++17 -g -fvisibility=hidden -O3 -Wno-unknown-pragmas
      src/pywrapper.cpp: In function 'void pybind11_init__richdem(pybind11::module_&)':
      src/pywrapper.cpp:137:8: error: no matching function for call to 'pybind11::module_::def(const char [24], <unresolved overloaded function type>, const char [43], pybind11::arg, pybind11::arg)'
        137 |   m.def("generate_perlin_terrain", &richdem::generate_perlin_terrain, "Generate random terrain using perlin noise", py::arg("array"), py::arg("seed"));
            |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from /tmp/pip-build-env-tzo0r9gt/overlay/lib/python3.11/site-packages/pybind11/include/pybind11/numpy.h:12,
                       from src/pywrapper.hpp:9,
                       from src/pywrapper.cpp:1:
      /tmp/pip-build-env-tzo0r9gt/overlay/lib/python3.11/site-packages/pybind11/include/pybind11/pybind11.h:1219:14: note: candidate: 'template<class Func, class ... Extra> pybind11::module_& pybind11::module_::def(const char*, Func&&, const Extra& ...)'
       1219 |     module_ &def(const char *name_, Func &&f, const Extra &...extra) {
            |              ^~~
      /tmp/pip-build-env-tzo0r9gt/overlay/lib/python3.11/site-packages/pybind11/include/pybind11/pybind11.h:1219:14: note:   template argument deduction/substitution failed:
      src/pywrapper.cpp:137:8: note:   couldn't deduce template parameter 'Func'
        137 |   m.def("generate_perlin_terrain", &richdem::generate_perlin_terrain, "Generate random terrain using perlin noise", py::arg("array"), py::arg("seed"));
            |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      error: command '/home/mdp0023/miniconda3/envs/pygeoflood-test-env-py3-11/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1
      [end of output]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant