Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

The path where headers are installed on Windows is not found (by default) by setuptools

Abierto
#78 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
38/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
cpp, python
Área
build-system

Línea de trabajo

Comienza con la reproducción de setup.py y el ejemplo pkg.cpp; después, inspecciona cómo el paquete conda de Windows coloca los encabezados de xtensor-python bajo $envprefix/Library/include. Confirma el cambio ejecutando python setup.py build en Windows y verificando que setuptools encuentre los encabezados desde la ruta de inclusión predeterminada.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Issue:
On Linux, the conda xtensor-python package installs the headers at $envprefix/include, which is searched by default when building extensions with setuptools. This is good!
On Windows, however, the headers are installed at $envprefix/Library/include, which is not searched by setuptools by default (one needs to fiddle with os.environ["CONDA_PREFIX"] in setup.py to add the path). Instead, they could be installed at $envprefix/include, and things would work fine.

One can repro e.g. by running python setup.py build with the following setup.py:

from setuptools import setup
from pybind11.setup_helpers import Pybind11Extension                                                                                                                                                                                            setup(
    name="testpkg",
    ext_modules=[Pybind11Extension("pkg", ["pkg.cpp"])],
)

and pkg.cpp, basically copied from xtensor-python's docs:

#include <numeric>                        // Standard library import for std::accumulate
#include "pybind11/pybind11.h"            // Pybind11 import to define Python bindings
#include "xtensor/xmath.hpp"              // xtensor import for the C++ universal functions
#define FORCE_IMPORT_ARRAY                // numpy C api loading
#include "xtensor-python/pyarray.hpp"     // Numpy bindings

double sum_of_sines(xt::pyarray<double>& m)
{
    auto sines = xt::sin(m);  // sines does not actually hold values.
    return std::accumulate(sines.cbegin(), sines.cend(), 0.0);
}

PYBIND11_MODULE(pkg, m)
{
    xt::import_numpy();
    m.doc() = "Test module for xtensor python bindings";

    m.def("sum_of_sines", sum_of_sines, "Sum the sines of the input values");
}

(Note that the same problem actually applies for xtensor itself, but I'm only opening it here.)


Environment (conda list):

Clean environment created with conda create -n tmpenv -c conda-forge python=3.9 xtensor-python.

$ conda list
# packages in environment at C:\Users\Antony\miniconda3\envs\tmpenv:
#
# Name                    Version                   Build  Channel
ca-certificates           2021.5.30            h5b45459_0    conda-forge
certifi                   2021.5.30        py39hcbf5309_0    conda-forge
intel-openmp              2021.2.0           h57928b3_616    conda-forge
libblas                   3.9.0                     9_mkl    conda-forge
libcblas                  3.9.0                     9_mkl    conda-forge
liblapack                 3.9.0                     9_mkl    conda-forge
mkl                       2021.2.0           hb70f87d_389    conda-forge
numpy                     1.20.3           py39h6635163_1    conda-forge
openssl                   1.1.1k               h8ffe710_0    conda-forge
pip                       21.1.2             pyhd8ed1ab_0    conda-forge
pybind11                  2.6.2            py39h2e07f2f_0    conda-forge
pybind11-global           2.6.2            py39h2e07f2f_0    conda-forge
python                    3.9.4           h7840368_0_cpython    conda-forge
python_abi                3.9                      1_cp39    conda-forge
setuptools                49.6.0           py39hcbf5309_3    conda-forge
sqlite                    3.35.5               h8ffe710_0    conda-forge
tbb                       2021.2.0             h2d74725_0    conda-forge
tzdata                    2021a                he74cb21_0    conda-forge
vc                        14.2                 hb210afc_4    conda-forge
vs2015_runtime            14.28.29325          h5e1d092_4    conda-forge
wheel                     0.36.2             pyhd3deb0d_0    conda-forge
wincertstore              0.2             py39hcbf5309_1006    conda-forge
xtensor                   0.23.10              h5362a0b_0    conda-forge
xtensor-python            0.25.2           py39h66837cb_0    conda-forge
xtl                       0.7.2                h5362a0b_1    conda-forge

Details about conda and system ( conda info ):
$ conda info
     active environment : tmpenv
    active env location : C:\Users\Antony\miniconda3\envs\tmpenv
            shell level : 3
       user config file : C:\Users\Antony\.condarc
 populated config files :
          conda version : 4.9.2
    conda-build version : 3.20.5
         python version : 3.8.3.final.0
       virtual packages : __win=0=0
                          __archspec=1=x86_64
       base environment : C:\Users\Antony\miniconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/win-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/win-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-64
                          https://repo.anaconda.com/pkgs/msys2/noarch
          package cache : C:\Users\Antony\miniconda3\pkgs
                          C:\Users\Antony\.conda\pkgs
                          C:\Users\Antony\AppData\Local\conda\conda\pkgs
       envs directories : C:\Users\Antony\miniconda3\envs
                          C:\Users\Antony\.conda\envs
                          C:\Users\Antony\AppData\Local\conda\conda\envs
               platform : win-64
             user-agent : conda/4.9.2 requests/2.23.0 CPython/3.8.3 Windows/10 Windows/10.0.19041
          administrator : False
             netrc file : None
           offline mode : False
Lenguaje dominante
Shell
Estrellas
1
Forks
12
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de conda-forge/xtensor-python-feedstock

Todos los issues de conda-forge/xtensor-python-feedstock

Issues similares

Más issues de Shell/Bash

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.