Ben*_*Ben 75 python numpy pip virtualenv
我正在尝试将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
Run Code Online (Sandbox Code Playgroud)
我安装了xcode的命令行工具
$ which gcc
/usr/bin/gcc
$ which cc
/usr/bin/cc
Run Code Online (Sandbox Code Playgroud)
我在Mac OSX 10.9上使用brew安装的python
编辑
是,尝试使用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
Run Code Online (Sandbox Code Playgroud)
小智 73
虽然很难看,但似乎有效
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install --upgrade numpy
Run Code Online (Sandbox Code Playgroud)
请注意,如果您为numpy以外的程序包收到此错误(例如lxml),请指定该程序包名称而不是numpy在该程序的结尾处.
我看到有人在安装宝石时遇到了类似的问题
Ruby Gem安装Json在Mavericks和Xcode 5.1上失败 - 未知参数:' - multiply_definedsuppress'
这只是一个临时修复,在某些时候必须修复编译器选项
小智 46
对于Docker(Alpine)和Python 3.x,这对我有用:
RUN apk update
RUN apk add make automake gcc g++ subversion python3-dev
Run Code Online (Sandbox Code Playgroud)
小智 15
问题是你无法编译.
首先,确保您已使用Xcode接受新的条款和条件.要做到这一点,只需打开xCode并接受.
然后,尝试安装gcc
brew install gcc
Run Code Online (Sandbox Code Playgroud)
最后,尝试安装Numpy
pip install numpy
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
小智 9
如果您不想使用sudo(因此权限以及使用venv时保留的权限),您可以将ARCHFLAGS声明添加到.bash_profile,并正常运行.这对我来说适用于Mavericks和Xcode 5.1使用venv:
在〜/ .bash_profile中:
export ARCHFLAGS = -Wno-error = unused-command-line-argument-hard-error-in-future
然后,只需运行命令:
pip install --upgrade numpy
小智 6
如果您运行的是 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
Run Code Online (Sandbox Code Playgroud)
就我而言,这发生在 docker 构建期间。问题是基础镜像没有固定到特定的 python 版本,并且 numpy 无法使用新版本进行编译。
FROM python:3-slim # BAD
Run Code Online (Sandbox Code Playgroud)
我将其更改为以下内容后,它起作用了:
FROM python:3.8-slim # GOOD
Run Code Online (Sandbox Code Playgroud)
请记住修复您的版本!:-)