pip install numpyの問題-RuntimeError:Broken toolchain:cannot link a simple C program


93

numpy(およびscipyとmatplotlib)をvirturalenvにインストールしようとしています。

私はこれらのエラーを受け取り続けます:

RuntimeError: Broken toolchain: cannot link a simple C program

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

xcode用のコマンドラインツールをインストールしました

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

私はMac OSX 10.9を使っています

編集
はい、pipを使用してインストールを試みます。
全体のトレースバックは巨大です(> 400行)

以下はそのセクションです。

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
行の上にいくつかの行を表示してくださいRuntimeError。そうすれば、失敗したコマンドを確認できます。また、pipソースを直接経由して、または直接ビルドしてインストールしていますか?
MattDMo 2014年

Rodger that、現在編集中
Ben

Lol @「単純なCプログラムをリンクできません」。そんなお尻!
キャメロンハドソン

回答:


77

醜いですが、機能しているようです

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

numpy以外のパッケージ(lxmlなど)でこのエラーが発生する場合numpyは、コマンドの最後ではなく、そのパッケージ名を指定してください。

宝石のインストールで誰かが抱えていた同様の問題を見ました

Ruby GemのインストールJsonがMavericksおよびXcode 5.1で失敗する-不明な引数: '-multiply_definedsuppress'

これは一時的な修正にすぎません。ある時点で、コンパイラオプションを修正する必要があります


1
@ベン:FWIW、私は同じ問題を抱えています(醸造を使用していません)。Xcodeを5.1にアップデートした後に表示されました。醜いですが、これが答えです(今のところ)。
オロメ2014年


unused-command-line-argument-hard-error-in-futureYosemiteで最新のXcode がまだ必要ですか?物事はそれなしで(少なくとも私が疲れたパッケージでは)機能するようです。
オロメ2014年

82

Docker(Alpine)とPython 3.xの場合、これは私にとってはうまくいきました:

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

13
docker python3 alpineイメージを使用している人にとっては、これが解決策です。
xssChauhan 2018

3
apk update最初のものが必要でしたが、そうでなければERROR: unsatisfiable constraintsメッセージが表示されました。
yair

どうもありがとうございます!
アモルファス

これは、docker python2 alpineイメージのソリューションでもあります。
エデュアルド

3
私はgcc g++ make python3-devnumpy / nmslib だけで高山でこれを行うことができました。この特定の問題の原因は、不足しているC ++コンパイラのようですg++(それがいることをエラーで見えますgccし、makeすでにインストールされています)。numpyビルドの他の重要な部分は、に付属するpython3ヘッダーpython3-devです。
ThisGuyCantEven

15

問題は、コンパイルできないことです。

まず、Xcodeの新しい利用規約に同意していることを確認してください。これを行うには、xCodeを開いて受け入れます。

次に、gccをインストールしてみます

brew install gcc

最後に、Numpyをインストールしてみてください

pip install numpy

お役に立てれば。


これは私のために働いた。問題は、xcodeを開いて利用規約に同意しなかったことです。
スティーブンス

9

sudoを使用したくない場合(venvを使用してもアクセス許可などが保持される)、ARCHFLAGS宣言を.bash_profileに追加して、通常どおり実行できます。これは、venveでMavericksとXcode 5.1を使用して動作しました。

〜/ .bash_profile内:

エクスポートARCHFLAGS = -Wno-error = unused-command-line-argument-hard-error-in-future

次に、次のコマンドを実行します。

pip install --upgrade numpy


4
sudo上記は、virtualenvのではなく実行することができ、システム全体のインストールのためにある
エレングベン

5

XCodeを開いて契約に同意し、ツールをインストールするだけで済みました。その後、PyCharmに戻り、問題なくnumpyをインストールしました。


5

Linuxディストリビューションを実行している場合は、Cコンパイラが必要になる場合がありますsh: gcc: command not foundここで説明する手順に従ってください。以下に要約します。

  • Fedora、Red Hat、CentOS、またはScientific Linux

    # yum groupinstall 'Development Tools'

  • DebianまたはUbuntu Linux

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

その後、再実行してみてください:

sudo pip install numpy

4

同様の問題が発生しているfedoraユーザーの場合、これらのパッケージをインストールしてみてください:

(python3を使用していない場合は、pip3の代わりにpython-develとpipを使用してください)

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

してみてください

sudo pip3 install numpy

2

OS XがXCodeをアップグレードした後、XCodeがユーザー(管理者権限を持つ)に新しいライセンスを受け入れるよう要求する場合があります。ライセンスが受け入れられるまで、clangとgccはコードをコンパイルしてリンクしようとするとエラーを発行します。または、少なくともpythonパッケージ。

XCodeを起動してライセンスに同意すると、エラーは表示されなくなります。

少なくとも、私にとってはそうでした。


1

つまり、Cコンパイラが見つかりません。他のコンパイラのリンクに失敗した場合は、gccコンパイラをインストールしてみてください。



0

Fedora 22では、これはpip自体を更新することで解決されました: sudo pip install --upgrade pip

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.