python怎么安装c语言库,python设置.py安装需要一个C库。如何添加?

我想达到的目标

我试着升级纽比# pip install --upgrade numpy

...

/chaouche/build/numpy/numpy/numarray/_capi.c:198: undefined reference to `log10'

collect2: ld returned 1 exit status

error: Command "gcc -pthread -shared -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags build/temp.linux-i686-2.7/numpy/numarray/_capi.o -L/usr/lib -Lbuild/temp.linux-i686-2.7 -lpython2.7 -o build/lib.linux-i686-2.7/numpy/numarray/_capi.so" failed with exit status 1

----------------------------------------

Rolling back uninstall of numpy

Replacing /usr/lib/python2.7/site-packages/numpy-1.6.1-py2.7.egg-info

Command /usr/bin/python -c "import setuptools;__file__='/home/chaouche/build/numpy/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-lppaDW-record/install-record.txt failed with error code 1

Exception information:

Traceback (most recent call last):

...

InstallationError: Command /usr/bin/python -c "import setuptools;__file__='/home/chaouche/build/numpy/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-lppaDW-record/install-record.txt failed with error code 1

出什么问题了

我最终发现它们并没有链接到数学库,在那里定义了所有这些符号(log10、sqrt、sincos等等)。我通过手动尝试带有-lm标志的gcc命令发现了这一点,它编译得很好。在

我的问题

我需要编辑哪些文件才能添加这个-lm标志并正确安装numpy?在

编辑

^{pr2}$

编译命令失败,因为没有指向数学库的链接。证据如下:

没有-lmroot@karabeela /home/chaouche/build/numpy # gcc -pthread -shared -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags build/temp.linux-i686-2.7/numpy/fft/fftpack_litemodule.o build/temp.linux-i686-2.7/numpy/fft/fftpack.o -L/usr/lib -Lbuild/temp.linux-i686-2.7 -lpython2.7 -o build/lib.linux-i686-2.7/numpy/fft/fftpack_lite.so

build/temp.linux-i686-2.7/numpy/fft/fftpack.o: In function `radfg':

/home/chaouche/build/numpy/numpy/fft/fftpack.c:959: undefined reference to `sincos'

build/temp.linux-i686-2.7/numpy/fft/fftpack.o: In function `cffti1':

/home/chaouche/build/numpy/numpy/fft/fftpack.c:1292: undefined reference to `sincos'

build/temp.linux-i686-2.7/numpy/fft/fftpack.o: In function `rfftb1':

/home/chaouche/build/numpy/numpy/fft/fftpack.c:1424: undefined reference to `sincos'

build/temp.linux-i686-2.7/numpy/fft/fftpack.o: In function `rffti1':

/home/chaouche/build/numpy/numpy/fft/fftpack.c:1481: undefined reference to `sincos'

collect2: ld returned 1 exit status

带-lmroot@karabeela /home/chaouche/build/numpy # gcc -lm -pthread -shared -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags build/temp.linux-i686-2.7/numpy/fft/fftpack_litemodule.o build/temp.linux-i686-2.7/numpy/fft/fftpack.o -L/usr/lib -Lbuild/temp.linux-i686-2.7 -lpython2.7 -o build/lib.linux-i686-2.7/numpy/fft/fftpack_lite.so

root@karabeela /home/chaouche/build/numpy #

编辑2

更多的线条显示设置.py发生错误之前安装正在执行:running build_ext

customize UnixCCompiler

customize UnixCCompiler using build_ext

building 'numpy.linalg.lapack_lite' extension

compiling C sources

C compiler: gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -DNDEBUG -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -g -fPIC

compile options: '-Inumpy/core/include -Ibuild/src.linux-i686-2.7/numpy/core/include/numpy -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/usr/include/python2.7 -c'

gcc: numpy/linalg/lapack_lite/dlapack_lite.c

gcc: numpy/linalg/lapack_lite/blas_lite.c

gcc: numpy/linalg/lapack_lite/f2c_lite.c

gcc: numpy/linalg/lapack_lite/zlapack_lite.c

gcc: numpy/linalg/lapack_lite/python_xerbla.c

gcc: numpy/linalg/lapack_lite/dlamch.c

gcc: numpy/linalg/lapack_litemodule.c

gcc -pthread -shared -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags build/temp.linux-i686-2.7/numpy/linalg/lapack_litemodule.o build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/python_xerbla.o build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/zlapack_lite.o build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/dlapack_lite.o build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/blas_lite.o build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/dlamch.o build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/f2c_lite.o -L/usr/lib -Lbuild/temp.linux-i686-2.7 -lpython2.7 -o build/lib.linux-i686-2.7/numpy/linalg/lapack_lite.so

build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/zlapack_lite.o: In function `zlaed0_':

/home/chaouche/build/numpy/numpy/linalg/lapack_lite/zlapack_lite.c:9844: undefined reference to `log'

...

/home/chaouche/build/numpy/numpy/linalg/lapack_lite/zlapack_lite.c:20998: undefined reference to `sqrt'

/home/chaouche/build/numpy/numpy/linalg/lapack_lite/zlapack_lite.c:21041: undefined reference to `sqrt'

build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/zlapack_lite.o:/home/chaouche/build/numpy/numpy/linalg/lapack_lite/zlapack_lite.c:22216: more undefined references to `sqrt' follow

...

/home/chaouche/build/numpy/numpy/linalg/lapack_lite/f2c_lite.c:583: undefined reference to `sqrt'

/home/chaouche/build/numpy/numpy/linalg/lapack_lite/f2c_lite.c:578: undefined reference to `sqrt'

collect2: ld returned 1 exit status

error: Command "gcc -pthread -shared -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags build/temp.linux-i686-2.7/numpy/linalg/lapack_litemodule.o build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/python_xerbla.o build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/zlapack_lite.o build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/dlapack_lite.o build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/blas_lite.o build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/dlamch.o build/temp.linux-i686-2.7/numpy/linalg/lapack_lite/f2c_lite.o -L/usr/lib -Lbuild/temp.linux-i686-2.7 -lpython2.7 -o build/lib.linux-i686-2.7/numpy/linalg/lapack_lite.so" failed with exit status 1

编辑3

我在/numpy/core中找到了这个代码/安装程序py:699在config.add_extension('umath',

sources = umath_src +

[generate_config_h,

generate_numpyconfig_h,

generate_umath_c,

generate_ufunc_api],

depends = deps + umath_deps,

libraries = ['npymath'],

)

也许numarray是和umath库联系起来的,而不是标准的C数学库?在root@karabeela /home/chaouche/build/numpy # find . -name "*umath*"

./numpy/linalg/umath_linalg.c.src

./numpy/core/code_generators/generate_umath.py

...

./build/lib.linux-i686-2.7/numpy/core/umath.so

./build/lib.linux-i686-2.7/numpy/core/umath_tests.so

./build/temp.linux-i686-2.7/numpy/core/src/umath

./build/temp.linux-i686-2.7/numpy/core/src/umath/umathmodule.o

./build/temp.linux-i686-2.7/build/src.linux-i686-2.7/numpy/core/src/umath

./build/temp.linux-i686-2.7/build/src.linux-i686-2.7/numpy/core/src/umath/umath_tests.o

...

root@karabeela /home/chaouche/build/numpy #

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值