Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta
#78 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
38/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cpp, python
Ambito
build-system

Direzione di ricerca

Inizia con la riproduzione di setup.py e l'esempio pkg.cpp, quindi esamina come il pacchetto conda per Windows posiziona gli header di xtensor-python in $envprefix/Library/include. Conferma la modifica eseguendo python setup.py build su Windows e verificando che setuptools trovi gli header dal percorso di inclusione predefinito.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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
Lingua principale
Shell
Stelle
1
Fork
12
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di conda-forge/xtensor-python-feedstock

Tutte le issue di conda-forge/xtensor-python-feedstock

Issue simili

Altre issue su Shell/Bash

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.