Masalah dengan pip install numpy - RuntimeError: Toolchain rusak: tidak dapat menautkan program C sederhana

99

Saya mencoba menginstal numpy (dan scipy dan matplotlib) menjadi virturalenv.

Saya terus mendapatkan kesalahan ini:

RuntimeError: Broken toolchain: cannot link a simple C program

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1

Saya memiliki alat baris perintah untuk xcode diinstal

$ which gcc
/usr/bin/gcc
$ which cc
/usr/bin/cc

Saya menggunakan Mac OSX 10.9 Menggunakan python yang diinstal minuman

Edit
Ya, mencoba menginstal dengan pip.
Seluruh pelacakan balik sangat besar (> 400 baris)

Inilah sebagian darinya:

C compiler: cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe



compile options: '-Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -Inumpy/core/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c'

cc: _configtest.c

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

failure.

removing: _configtest.c _configtest.o

Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/setup.py", line 192, in <module>

    setup_package()

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/setup.py", line 185, in setup_package

    configuration=configuration )

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/core.py", line 169, in setup

    return old_setup(**new_attr)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 152, in setup

    dist.run_commands()

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands

    self.run_command(cmd)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command

    cmd_obj.run()

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/egg_info.py", line 10, in run

    self.run_command("build_src")

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command

    self.distribution.run_command(command)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command

    cmd_obj.run()

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 153, in run

    self.build_sources()

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 164, in build_sources

    self.build_library_sources(*libname_info)

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 299, in build_library_sources

    sources = self.generate_sources(sources, (lib_name, build_info))

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 386, in generate_sources

    source = func(extension, build_dir)

  File "numpy/core/setup.py", line 674, in get_mathlib_info

    raise RuntimeError("Broken toolchain: cannot link a simple C program")

RuntimeError: Broken toolchain: cannot link a simple C program
Ben
sumber
1
tolong tunjukkan beberapa baris di atas RuntimeErrorbaris tersebut, sehingga kita bisa melihat perintah mana yang gagal. Juga, apakah Anda menginstal melalui pipatau dengan membangun sumber secara langsung?
MattDMo
Rodger itu, diedit sekarang
Ben
Lol @ "tidak dapat menghubungkan program C sederhana". Sass seperti itu!
Cameron Hudson

Jawaban:

77

Meskipun jelek, tampaknya berhasil

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install --upgrade numpy

Perhatikan bahwa jika Anda mendapatkan kesalahan ini untuk paket selain numpy, (seperti lxml) tentukan nama paket itu dan bukan numpydi akhir perintah.

Saya melihat masalah serupa yang dialami seseorang saat memasang permata

Instalasi Ruby Gem Json gagal pada Mavericks dan Xcode 5.1 - argumen tidak diketahui: '-multiply_definedsuppress'

Ini hanya perbaikan sementara, pada titik tertentu opsi kompilator harus diperbaiki

Derrick Shoemake
sumber
1
@ Ben: FWIW, saya memiliki masalah yang sama (tidak menggunakan minuman). Itu muncul setelah memperbarui Xcode ke 5.1. Betapapun jeleknya, tampaknya ini adalah jawabannya (untuk saat ini).
orome
2
Ada penjelasan dalam catatan rilis XCode 5.1 .
badzil
Apakah unused-command-line-argument-hard-error-in-futuremasih diperlukan dengan Xcode terbaru di bawah Yosemite? Segalanya tampak berfungsi (setidaknya untuk paket yang saya lelah) tanpanya.
orome
Ada yang punya solusi windows?
Zack Plauché
90

Untuk Docker (Alpine) dan Python 3.x ini berhasil untuk saya:

RUN apk update
RUN apk add make automake gcc g++ subversion python3-dev
Willem Bressers
sumber
15
Bagi siapa saja yang menggunakan gambar docker python3 alpine, ini solusinya.
xssChauhan
4
Saya membutuhkan yang apk updatepertama, jika tidak saya mendapat ERROR: unsatisfiable constraintspesan.
yair
Terima kasih banyak!
Amorf
Ini juga merupakan solusi untuk citra alpine docker python2.
Eduard
4
Saya bisa melakukan ini di alpine hanya dengan gcc g++ make python3-devnumpy / nmslib. Penyebab masalah khusus ini tampaknya adalah compiler c ++ yang hilang g++(terlihat dari kesalahan yang gccdan makesudah diinstal). Bagian penting lainnya dari numpybuild adalah header python3 yang disertakan python3-dev.
ThisGuyCantEven
16

Masalahnya adalah Anda tidak dapat mengkompilasi.

Pertama, pastikan Anda telah menerima Syarat dan Ketentuan baru dengan Xcode. Untuk melakukan ini, cukup buka xCode dan terima.

Kemudian, coba instal gcc dengan

brew install gcc

Terakhir, coba instal Numpy dengan

pip install numpy

Semoga ini membantu.

Desmond
sumber
ini berhasil untuk saya. Masalahnya adalah saya tidak membuka xcode dan menerima syarat dan ketentuan.
Stephens
Untuk mereka yang menjalankan Big Sur Beta : (1) unduh dan instal Alat Baris Perintah untuk Xcode 12.2 beta 3 (2) pada tipe terminal sudo xcode-select --switch /Library/Developer/CommandLineTools(3) brew install gcc(4)pip install numpy
Felipe
9

Jika Anda tidak ingin menggunakan sudo (jadi izin dan hal-hal seperti itu dipertahankan saat menggunakan venv), Anda bisa menambahkan deklarasi ARCHFLAGS ke .bash_profile Anda, dan jalankan seperti biasa. Ini bekerja untuk saya dengan Mavericks dan Xcode 5.1 menggunakan dengan venv:

Dalam ~ / .bash_profile:

ekspor ARCHFLAGS = -Wno-error = unused-command-line-argument-hard-error-in-future

Kemudian, jalankan saja perintah:

pip install --upgrade numpy

Brian
sumber
4
di sudoatas adalah untuk instalasi seluruh sistem, dapat berjalan tanpa di virtualenv
Eren Güven
5

Saya hanya perlu membuka XCode dan menerima perjanjian dan membiarkannya menginstal alat. Saya kemudian kembali ke PyCharm dan menginstal numpy lagi tanpa masalah.

pengguna3589327
sumber
5

Jika Anda menjalankan distribusi linux, Anda mungkin memerlukan kompiler C, terutama jika Anda melihat baris log seperti sh: gcc: command not found. Anda dapat mengikuti petunjuknya di sini yang telah saya rangkum di bawah ini:

  • Fedora, Red Hat, CentOS, atau Scientific Linux

    # yum groupinstall 'Development Tools'

  • Debian atau Ubuntu Linux

    $ sudo apt-get update $ sudo apt-get install build-essential manpages-dev

Kemudian Anda dapat mencoba menjalankan ulang:

sudo pip install numpy
avyk37
sumber
4

Untuk pengguna fedora yang mengalami masalah serupa, coba instal paket berikut:

(jika tidak menggunakan python3 gunakan python-devel dan pip sebagai ganti pip3)

sudo dnf install python3-devel
sudo dnf install make automake gcc gcc-c++ gcc-gfortran
sudo dnf install redhat-rpm-config
sudo dnf install subversion

lalu coba

sudo pip3 install numpy
Ollegn
sumber
2

Dalam beberapa kasus setelah OS X meningkatkan XCode, XCode akan meminta pengguna (dengan hak administratif) untuk menerima lisensi baru. Hingga lisensi diterima, clang dan gcc akan mengeluarkan kesalahan saat mencoba mengkompilasi dan menautkan kode. Atau setidaknya paket python.

Jika Anda meluncurkan XCode dan menerima lisensinya, kesalahan tidak lagi muncul.

Setidaknya, inilah yang terjadi pada saya.

lukecampbell
sumber
1

Ini berarti compiler C Anda tidak dapat ditemukan. Coba instal kompilator gcc jika penautan kompilator lain gagal.

Inc33
sumber
1

Dalam kasus saya, ini terjadi selama pembuatan buruh pelabuhan. Masalahnya adalah bahwa gambar dasar tidak diperbaiki ke versi python tertentu dan numpy tidak dapat dikompilasi dengan yang baru.

FROM python:3-slim  # BAD

Setelah saya mengubahnya menjadi yang berikut ini berhasil:

FROM python:3.8-slim  # GOOD

Ingatlah untuk memperbaiki versi Anda! :-)

Lebih
sumber
Hal yang sama muncul untukku hari ini. Sepertinya mereka menghapus kompilator c + utilitas make yang terkait di 3.9.0.
PF1
0

Di atas berfungsi untuk saya hanya setelah menginstal python3-dev.

Iliyan Bobev
sumber
0

Di Fedora 22, masalah ini diselesaikan dengan memperbarui pip itu sendiri: sudo pip install --upgrade pip

zenperttu
sumber