En essayant de construire numpy localement, j'avais reçu l'erreur suivante:
gcc: numpy/core/src/common/mem_overlap.c
gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o build/temp.linux-x86_64-3.8/numpy/core/src/common/mem_overlap.o -L/usr/lib -Lbuild/temp.linux-x86_64-3.8 -lnpymath -o numpy/core/_multiarray_tests.cpython-38-x86_64-linux-gnu.so
/usr/bin/ld: build/temp.linux-x86_64-3.8/numpy/core/src/common/mem_overlap.o:/home/ross/repos/numpy/numpy/core/include/numpy/ndarraytypes.h:1824: multiple definition of `PyArrayDTypeMeta_Type'; build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o:/home/ross/repos/numpy/numpy/core/include/numpy/ndarraytypes.h:1824: first defined here
collect2: error: ld returned 1 exit status
error: Command "gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o build/temp.linux-x86_64-3.8/numpy/core/src/common/mem_overlap.o -L/usr/lib -Lbuild/temp.linux-x86_64-3.8 -lnpymath -o numpy/core/_multiarray_tests.cpython-38-x86_64-linux-gnu.so" failed with exit status 1
`bisect`ing a identifié 1809a0fde comme la source du problème. Notez que cette erreur ne s'est produite pour moi qu'avec gcc 10.1. Aucun problème n'a été rencontré avec gcc 9.3. ### Exemple de code de reproduction :$ git clone https://github.com/numpy/numpy.git
$ git checkout 1809a0fde
$ pip install -r test_requirements.txt
$ python setup.py build_ext -i
### Message d'erreur:Exécution à partir du répertoire source numpy. Sources cythonisantes numpy/random/_bounded_integers.pxd.in n'a pas changé Traitement numpy/random/mtrand.pyx numpy/random/_common.pyx n'a pas changé Traitement numpy/random/_mt19937.pyx Traitement numpy/random/_pcg64.pyx Traitement numpy/random/_generator.pyx numpy/random/_bounded_integers.pyx n'a pas changé numpy/random/_sfc64.pyx n'a pas changé numpy/random/_philox.pyx n'a pas changé numpy/random/bit_generator.pyx n'a pas changé numpy/random/_bounded_integers.pyx.in n'a pas changé numpy/core/setup.py:406 : MismatchCAPIWarning : non-concordance d'API détectée, les numéros de version de l'API C doivent être mis à jour. La version actuelle de l'api C est 13, avec la somme de contrôle 17a0f366e55ec05e5c5c149123478452, mais la somme de contrôle enregistrée pour la version 13 de l'API C dans core/codegen_dir/cversions.txt est 5b0e8bbded00b166125974fc71e80a33. Si des fonctions ont été ajoutées dans l'API C, vous devez mettre à jour C_API_VERSION dans numpy/core/setup_common.py. check_api_version(C_API_VERSION, codegen_dir) blas_opt_info : blas_mkl_info : personnaliser UnixCCompiler bibliothèques mkl_rt introuvables dans ['/home/ross/.virtualenvs/tmp/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/' ] INDISPONIBLE info_blis : bibliothèques blis introuvables dans ['/home/ross/.virtualenvs/tmp/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/' ] INDISPONIBLE openblas_info : Compilateur C : gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC création de /tmp/tmpp_pb97eg/tmp création de /tmp/tmpp_pb97eg/tmp/tmpp_pb97eg options de compilation : '-c' gcc : /tmp/tmpp_pb97eg/source.c gcc -pthread /tmp/tmpp_pb97eg/tmp/tmpp_pb97eg/source.o -L/usr/lib64 -lopenblas -o /tmp/tmpp_pb97eg/a.out TROUVÉ: bibliothèques = ['openblas', 'openblas'] répertoire_bibliothèque = ['/usr/lib64'] langue = c define_macros = [('HAVE_CBLAS', Aucun)] TROUVÉ: bibliothèques = ['openblas', 'openblas'] répertoire_bibliothèque = ['/usr/lib64'] langue = c define_macros = [('HAVE_CBLAS', Aucun)] chemin inexistant dans 'numpy/distutils' : 'site.cfg' lapack_opt_info : lapack_mkl_info : bibliothèques mkl_rt introuvables dans ['/home/ross/.virtualenvs/tmp/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/' ] INDISPONIBLE openblas_lapack_info : Compilateur C : gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC création de /tmp/tmpeicqr4ho/tmp création de /tmp/tmpeicqr4ho/tmp/tmpeicqr4ho options de compilation : '-c' gcc : /tmp/tmpeicqr4ho/source.c gcc -pthread /tmp/tmpeicqr4ho/tmp/tmpeicqr4ho/source.o -L/usr/lib64 -lopenblas -o /tmp/tmpeicqr4ho/a.out /usr/bin/ld : /tmp/tmpeicqr4ho/tmp/tmpeicqr4ho/source.o : dans la fonction 'main' : /tmp/tmpeicqr4ho/source.c:4 : référence non définie à `zungqr_' collect2 : erreur : ld a renvoyé 1 état de sortie INDISPONIBLE openblas_clapack_info : bibliothèques openblas,lapack introuvables dans ['/home/ross/.virtualenvs/tmp/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib /'] INDISPONIBLE flamme_info : bibliothèques flamme introuvable dans ['/home/ross/.virtualenvs/tmp/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/' ] INDISPONIBLE atlas_3_10_threads_info : Réglage PTATLAS=ATLAS bibliothèques lapack_atlas introuvables dans /home/ross/.virtualenvs/tmp/lib bibliothèques tatlas,tatlas introuvables dans /home/ross/.virtualenvs/tmp/lib bibliothèques lapack_atlas introuvables dans /usr/local/lib bibliothèques tatlas,tatlas introuvables dans /usr/local/lib bibliothèques lapack_atlas introuvables dans /usr/lib64 bibliothèques tatlas,tatlas introuvables dans /usr/lib64 bibliothèques lapack_atlas introuvables dans /usr/lib bibliothèques tatlas,tatlas introuvables dans /usr/lib bibliothèques lapack_atlas introuvables dans /usr/lib/ bibliothèques tatlas,tatlas introuvables dans /usr/lib/INDISPONIBLE atlas_3_10_info : bibliothèques lapack_atlas introuvables dans /home/ross/.virtualenvs/tmp/lib bibliothèques satlas, satlas introuvable dans /home/ross/.virtualenvs/tmp/lib bibliothèques lapack_atlas introuvables dans /usr/local/lib bibliothèques satlas, satlas introuvable dans /usr/local/lib bibliothèques lapack_atlas introuvables dans /usr/lib64 bibliothèques satlas, satlas introuvable dans /usr/lib64 bibliothèques lapack_atlas introuvables dans /usr/lib bibliothèques satlas, satlas introuvable dans /usr/lib bibliothèques lapack_atlas introuvables dans /usr/lib/ bibliothèques satlas, satlas introuvable dans /usr/lib/ INDISPONIBLE atlas_threads_info : Réglage PTATLAS=ATLAS bibliothèques lapack_atlas introuvables dans /home/ross/.virtualenvs/tmp/lib bibliothèques ptf77blas,ptcblas,atlas introuvables dans /home/ross/.virtualenvs/tmp/lib bibliothèques lapack_atlas introuvables dans /usr/local/lib bibliothèques ptf77blas,ptcblas,atlas introuvables dans /usr/local/lib bibliothèques lapack_atlas introuvables dans /usr/lib64 bibliothèques ptf77blas,ptcblas,atlas introuvables dans /usr/lib64 bibliothèques lapack_atlas introuvables dans /usr/lib bibliothèques ptf77blas,ptcblas,atlas introuvables dans /usr/lib bibliothèques lapack_atlas introuvables dans /usr/lib/ bibliothèques ptf77blas,ptcblas,atlas introuvables dans /usr/lib/ INDISPONIBLE info_atlas : bibliothèques lapack_atlas introuvables dans /home/ross/.virtualenvs/tmp/lib bibliothèques f77blas,cblas,atlas introuvables dans /home/ross/.virtualenvs/tmp/lib bibliothèques lapack_atlas introuvables dans /usr/local/lib bibliothèques f77blas,cblas,atlas introuvables dans /usr/local/lib bibliothèques lapack_atlas introuvables dans /usr/lib64 bibliothèques f77blas,cblas,atlas introuvables dans /usr/lib64 bibliothèques lapack_atlas introuvables dans /usr/lib bibliothèques f77blas,cblas,atlas introuvables dans /usr/lib bibliothèques lapack_atlas introuvables dans /usr/lib/ bibliothèques f77blas,cblas,atlas introuvables dans /usr/lib/ INDISPONIBLE accélérer_info : INDISPONIBLE lapack_info : bibliothèques lapack introuvables dans ['/home/ross/.virtualenvs/tmp/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/' ] INDISPONIBLE /home/ross/repos/numpy/numpy/distutils/system_info.py:1748 : Avertissement utilisateur : Bibliothèques Lapack (http://www.netlib.org/lapack/) introuvables. Les répertoires de recherche des bibliothèques peuvent être spécifiés dans le numpy/distutils/site.cfg (section [lapack]) ou en définissant la variable d'environnement LAPACK. return getattr(self, '_calc_info_{}'.format(name))() lapack_src_info : INDISPONIBLE /home/ross/repos/numpy/numpy/distutils/system_info.py:1748 : Avertissement utilisateur : Sources de Lapack (http://www.netlib.org/lapack/) introuvables. Les répertoires de recherche des sources peuvent être spécifiés dans le numpy/distutils/site.cfg (section [lapack_src]) ou en définissant la variable d'environnement LAPACK_SRC. return getattr(self, '_calc_info_{}'.format(name))() INDISPONIBLE numpy_linalg_lapack_lite : TROUVÉ: langue = c define_macros = [('HAVE_BLAS_ILP64', Aucun), ('BLAS_SYMBOL_SUFFIX', '64_')] chemin inexistant dans 'numpy/random' : '{gen}.pxd' chemin inexistant dans 'numpy/random' : '{gen}.pxd' /usr/lib/python3.8/distutils/dist.py:274 : UserWarning : option de distribution inconnue : 'define_macros' warnings.warn(msg) exécuter build_ext exécuter build_src build_src construire des sources py_modules construire des sources "npymath" de la bibliothèque en ajoutant 'numpy/core/src/npymath' à include_dirs. Aucun - rien fait avec h_files = ['numpy/core/src/npymath/npy_math_internal.h'] bibliothèque de construction des sources "npysort" en ajoutant 'numpy/core/src/common' à include_dirs. Aucun - rien fait avec h_files = ['numpy/core/src/common/npy_sort.h', 'numpy/core/src/common/npy_partition.h', 'numpy/core/src/common/npy_binsearch.h'] bibliothèque de construction sources "npyrandom" construction des sources de l'extension "numpy.core._multiarray_tests" conv_template:> numpy/core/src/multiarray/_multiarray_tests.c sources de l'extension de construction "numpy.core._multiarray_umath" modèle_conv :> numpy/core/src/multiarray/arraytypes.c modèle_conv :> numpy/core/src/multiarray/einsum.c conv_template :> numpy/core/src/multiarray/lowlevel_strided_loops.c conv_template :> numpy/core/src/multiarray/nditer_templ.c modèle_conv :> numpy/core/src/multiarray/scalartypes.c modèle_conv :> numpy/core/src/umath/funcs.inc en ajoutant 'numpy/core/src/umath' à include_dirs. modèle_conv :> numpy/core/src/umath/simd.inc modèle_conv :> numpy/core/src/umath/loops.h modèle_conv :> numpy/core/src/umath/loops.c modèle_conv :> numpy/core/src/umath/matmul.h modèle_conv :> numpy/core/src/umath/matmul.c modèle_conv :> numpy/core/src/umath/clip.h modèle_conv :> numpy/core/src/umath/clip.c modèle_conv :> numpy/core/src/umath/scalarmath.c modèle_conv :> numpy/core/src/npymath/npy_math_internal.h en ajoutant 'numpy/core/src/npymath' à include_dirs. modèle_conv :> numpy/core/src/npymath/ieee754.c modèle_conv :> numpy/core/src/npymath/npy_math_complex.c modèle_conv :> numpy/core/src/common/templ_common.h en ajoutant 'numpy/core/src/common' à include_dirs. modèle_conv :> numpy/core/src/common/npy_cpu_features.c numpy.core - rien fait avec h_files = ['numpy/core/src/umath/funcs.inc', 'numpy/core/src/umath/simd.inc', 'numpy/core/src/umath/loops.h ', 'numpy/core/src/umath/matmul.h', 'numpy/core/src/umath/clip.h', 'numpy/core/src/npymath/npy_math_internal.h', 'numpy/core/src /common/templ_common.h', 'numpy/core/include/numpy/config.h', 'numpy/core/include/numpy/_numpyconfig.h', 'numpy/core/include/numpy/__multiarray_api.h', 'numpy/core/include/numpy/__ufunc_api.h'] sources de l'extension de construction "numpy.core._umath_tests" sources de l'extension de construction "numpy.core._rational_tests" sources de l'extension de construction "numpy.core._struct_ufunc_tests" sources de l'extension de construction "numpy.core._operand_flag_tests" sources de l'extension de bâtiment "numpy.fft._pocketfft_internal" sources de l'extension de construction "numpy.linalg.lapack_lite" ### Avertissement : Utilisation de lapack non optimisé ### extension de bâtiment "numpy.linalg._umath_linalg" sources ### Avertissement : Utilisation de lapack non optimisé ### extension de bâtiment "numpy.random._mt19937" sources sources de l'extension de bâtiment "numpy.random._philox" sources de l'extension de construction "numpy.random._pcg64" sources de l'extension de bâtiment "numpy.random._sfc64" sources de l'extension de bâtiment "numpy.random._common" sources de l'extension de bâtiment "numpy.random.bit_generator" sources de l'extension de bâtiment "numpy.random._generator" sources de l'extension de construction "numpy.random._bounded_integers" sources de l'extension de bâtiment "numpy.random.mtrand" création de sources data_files build_src : création de fichiers de configuration npy-pkg personnaliser UnixCCompiler personnaliser UnixCCompiler en utilisant new_build_clib construction de la bibliothèque 'npymath' compilation de sources C Compilateur C : gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC options de compilation : '-Inumpy/core/src/npymath -Inumpy/core/include -Inumpy/core/include/numpy -Inumpy/core/src/common -Inumpy/core/src -Inumpy/core -Inumpy/core/src /npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/home/ross/.virtualenvs/tmp/include -I/usr/include/python3.8 - Inumpy/core/src/common -Inumpy/core/src/npymath -c' options supplémentaires : '-std=c99' gcc: numpy/core/src/npymath/halffloat.c gcc : numpy/core/src/npymath/npy_math.c gcc : numpy/core/src/npymath/npy_math_complex.c gcc : numpy/core/src/npymath/ieee754.c ar : ajout de 4 fichiers objets à build/temp.linux-x86_64-3.8/libnpymath.a construction de la bibliothèque 'npyrandom' compilation de sources C Compilateur C : gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC options de compilation : '-Inumpy/core/include -Inumpy/core/include/numpy -Inumpy/core/src/common -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src /multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/home/ross/.virtualenvs/tmp/include -I/usr/include/python3.8 -Inumpy/core/src/common - Inumpy/core/src/npymath -c' options supplémentaires : '-std=c99' gcc: numpy/random/src/distributions/distributions.c gcc : numpy/random/src/distributions/random_mvhg_count.c gcc : numpy/random/src/distributions/random_mvhg_marginals.c gcc: numpy/random/src/distributions/random_hypergeometric.c ar : ajout de 5 fichiers objets à build/temp.linux-x86_64-3.8/libnpyrandom.a personnaliser UnixCCompiler personnaliser UnixCCompiler en utilisant new_build_ext construction de l'extension 'numpy.core._multiarray_tests' compilation de sources C Compilateur C : gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC options de compilation : '-DNPY_INTERNAL_BUILD=1 -DHAVE_NPY_CONFIG_H=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -Inumpy/core/include -Inumpy/core/include/numpy -Inumpy/core/src/common -Inumpy/core /src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/home/ross/.virtualenvs/tmp/ include -I/usr/include/python3.8 -Inumpy/core/src/common -Inumpy/core/src/npymath -c' options supplémentaires : '-std=c99' gcc : numpy/core/src/common/mem_overlap.c gcc : numpy/core/src/multiarray/_multiarray_tests.c gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common, --as-needed,-z,relro,-z, maintenant build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o build/temp.linux-x86_64-3.8/numpy/core/ src/common/mem_overlap.o -L/usr/lib -Lbuild/temp.linux-x86_64-3.8 -lnpymath -o numpy/core/_multiarray_tests.cpython-38-x86_64-linux-gnu.so /usr/bin/ld : build/temp.linux-x86_64-3.8/numpy/core/src/common/mem_overlap.o :/home/ross/repos/numpy/numpy/core/include/numpy/ndarraytypes.h : 1825 : définition multiple de 'PyArrayDTypeMeta_Type' ; build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o:/home/ross/repos/numpy/numpy/core/include/numpy/ndarraytypes.h:1825 : défini pour la première fois ici collect2 : erreur : ld a renvoyé 1 état de sortie erreur : Commande "gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,-- sort-common,--as-needed,-z,relro,-z,maintenant build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o build/temp.linux-x86_64-3.8/ numpy/core/src/common/mem_overlap.o -L/usr/lib -Lbuild/temp.linux-x86_64-3.8 -lnpymath -o numpy/core/_multiarray_tests.cpython-38-x86_64-linux-gnu.so" a échoué avec état de sortie 1
Version Python : 3.8.3
Version NumPy : 1809a0fde
Version GCC : 10.1
Je suppose que ces définitions ne sont probablement pas strictement acceptables (maintenant que vous le notez, l'analyse statique de clang me donne également quelques avertissements à ce sujet). Ils doivent probablement être déplacés vers les fichiers d'en-tête spécifiques jusqu'à ce que nous les rendions publics ?
Je vois ça aussi, gcc 10.1.1. J'ai mis à jour mon système d'exploitation hier soir, il y a toujours des problèmes après...
je vois ça avec
jupiter<strong i="6">@23</strong>:06 ➤ gcc --version
gcc (GCC) 10.1.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
L'erreur est un extern
manquant sur la déclaration, gh-16435 devrait le corriger, Ross l'a testé pour moi.
Commentaire le plus utile
L'erreur est un
extern
manquant sur la déclaration, gh-16435 devrait le corriger, Ross l'a testé pour moi.