Pip install numpy ile ilgili sorunlar - RuntimeError: Bozuk araç zinciri: basit bir C programına bağlanılamıyor


99

Numpy (ve scipy ve matplotlib) 'i bir virturalenv'e yüklemeye çalışıyorum.

Yine de şu hataları alıyorum:

RuntimeError: Broken toolchain: cannot link a simple C program

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

Xcode için komut satırı araçlarına sahibim

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

Mac OSX 10.9'dayım, brew yüklü bir python kullanıyorum

Edit
Evet, pip ile kurulmaya çalışılıyor.
Geri dönüşün tamamı çok büyük (> 400 satır)

İşte bunun bir bölümü:

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

1
lütfen satırın üstündeki birkaç satırı gösterin RuntimeError, böylece hangi komutların başarısız olduğunu görebiliriz. Ayrıca, pipkaynağı doğrudan oluşturarak mı yoksa aracılığıyla mı kuruyorsunuz ?
MattDMo

Rodger that, şimdi düzenlendi
Ben

Lol @ "basit bir C programını bağlayamaz". Ne kadar şımarık!
Cameron Hudson

Yanıtlar:


77

Çirkin olsa da işe yarıyor gibi görünüyor

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

Bu hatayı numpy dışında bir paket için alıyorsanız (lxml gibi) numpy, commnd'nin sonu yerine bu paket adını belirtin .

Birinin bir mücevher kurarken yaşadığı benzer bir sorunu gördüm

Ruby Gem kurulumu Json, Mavericks ve Xcode 5.1'de başarısız oluyor - bilinmeyen argüman: '-multiply_definedsuppress'

Bu sadece geçici bir düzeltmedir, bir noktada derleyici seçeneklerinin düzeltilmesi gerekecektir.


1
@Ben: FWIW, aynı sorunu yaşıyorum (brew kullanmıyorum). Xcode'u 5.1'e güncelledikten sonra belirdi. Ne kadar çirkin olursa olsun, yanıt bu gibi görünüyor (şimdilik).
orome

2
XCode 5.1 sürüm notlarında bir açıklama var .
badzil

unused-command-line-argument-hard-error-in-futureYosemite altındaki en son Xcode'a hala ihtiyaç var mı ? İşler onsuz çalışıyor gibi görünüyor (en azından yorduğum paketler için).
orome

Windows çözümü olan var mı?
Zack Plauché

91

Docker (Alpine) ve Python 3.x için bu benim için çalıştı:

RUN apk update
RUN apk add make automake gcc g++ subversion python3-dev

16
Docker python3 alp görüntüsünü kullanan herkes için çözüm budur.
xssChauhan

4
Bir apk updateilke ihtiyacım vardı , yoksa bir ERROR: unsatisfiable constraintsmesaj aldım .
yair

Çok teşekkür ederim!
Amorphous

Bu aynı zamanda docker python2 alp görüntüsü için bir çözümdür.
Eduard

4
Bunu alp üzerinde sadece gcc g++ make python3-devnumpy / nmslib ile yapabildim. Bu özel sorunun nedeni, eksik c ++ derleyicisi g++gibi görünüyor ( zaten yüklü olan gccve hataya bakar make). numpyDerlemenin diğer önemli kısımları birlikte gelen python3 başlıklarıdır python3-dev.
ThisGuyCant

16

Sorun şu ki, derleyemiyorsunuz.

Öncelikle, Xcode ile yeni Hüküm ve Koşulları kabul ettiğinizden emin olun. Bunu yapmak için, xCode'u açmanız ve kabul etmeniz yeterlidir.

Ardından, gcc'yi şununla yüklemeyi deneyin:

brew install gcc

Son olarak, Numpy'yi

pip install numpy

Bu yardımcı olur umarım.


bu benim için çalıştı. Sorun, xcode'u açıp hüküm ve koşulları kabul etmedim.
Stephens

Big Sur Beta kullananlar için : (1) Xcode 12.2 beta 3 (2) için Komut Satırı Araçlarını terminal türüne sudo xcode-select --switch /Library/Developer/CommandLineTools(3) brew install gcc(4) indirip yükleyinpip install numpy
Felipe,

9

Sudo kullanmak istemiyorsanız (bu nedenle izinler ve venv kullanırken buna benzer şeyler korunur), ARCHFLAGS bildirimini .bash_profile dosyanıza ekleyebilir ve normal şekilde çalıştırabilirsiniz. Bu benim için Venv ile Mavericks ve Xcode 5.1 ile çalıştı:

~ / .Bash_profile içinde:

dışa aktar ARCHFLAGS = -Wno-error = kullanılmayan-komut satırı-argüman-zor-gelecekte-hata

Ardından şu komutu çalıştırın:

pip install - yükseltme numpy


4
sudoYukarıda bir virtualenv olmadan çalışabilir, sistem çapında kurulumu içindir
Eren Güven

5

Sadece XCode'u açıp sözleşmeyi kabul etmem ve araçları kurmasına izin vermem gerekiyordu. Daha sonra PyCharm'a geri döndüm ve hiçbir sorun yaşamadan tekrar numpy yükledim.


5

Bir linux dağıtımı çalıştırıyorsanız, bir C derleyicisine ihtiyacınız olabilir, özellikle de sh: gcc: command not found. Aşağıda özetlediğim talimatları buradan takip edebilirsiniz :

  • Fedora, Red Hat, CentOS veya Scientific Linux

    # yum groupinstall 'Development Tools'

  • Debian veya Ubuntu Linux

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

Ardından yeniden çalıştırmayı deneyebilirsiniz:

sudo pip install numpy

4

Benzer bir sorunu olan fedora kullanıcıları için şu paketleri yüklemeyi deneyin:

(python3 kullanmıyorsanız pip3 yerine python-devel ve pip kullanın)

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

o zaman dene

sudo pip3 install numpy

2

OS X XCode'u yükselttikten sonra bazı durumlarda, XCode kullanıcının (yönetici ayrıcalıklarına sahip) yeni bir lisansı kabul etmesini isteyecektir. Lisans kabul edilene kadar clang ve gcc, kodu derlemeye ve bağlamaya çalışırken bir hata verecektir. Veya en azından python paketleri.

XCode'u başlatır ve lisansı kabul ederseniz, hatalar artık görünmez.

En azından benim için durum buydu.


1

Bu, C derleyicinizi bulamayacağı anlamına gelir. Diğer derleyiciyi bağlama başarısız olursa gcc derleyicisini kurmayı deneyin.


1

Benim durumumda bu, bir docker yapımı sırasında oldu. Sorun, temel görüntünün belirli bir python sürümüne sabitlenmemesi ve numpy'nin yenisiyle derlenememesiydi.

FROM python:3-slim  # BAD

Aşağıdakine değiştirdikten sonra işe yaradı:

FROM python:3.8-slim  # GOOD

Sürümlerinizi düzeltmeyi unutmayın! :-)


Aynı şey bugün benim için de kırpıldı. 3.9.0'da c derleyicisi + ilişkili make yardımcı programlarını kaldırmış gibi görünüyorlar.
PF1

0

Yukarıdakiler benim için yalnızca python3-dev yükledikten sonra çalıştı.


0

Fedora 22'de bu, pip'in kendisini güncelleyerek çözüldü: sudo pip install --upgrade pip

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.