加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python pip库搜索路径

发布时间:2020-12-20 13:41:43 所属栏目:Python 来源:网络整理
导读:我正在尝试通过pip将 python包 cvxopt安装到Centos 6系统上的虚拟环境中. 由于lapack是先决条件,并且由于我没有超级用户访问系统,因此我使用以下方法在本地安装了lapack: $cmake -DCMAKE_INSTALL_PREFIX=/home/tom .$make install 我注意到在这一步之后,lib
我正在尝试通过pip将 python包 cvxopt安装到Centos 6系统上的虚拟环境中.

由于lapack是先决条件,并且由于我没有超级用户访问系统,因此我使用以下方法在本地安装了lapack:

$cmake -DCMAKE_INSTALL_PREFIX=/home/tom .
$make install

我注意到在这一步之后,liblapack.a位于我的本地lib目录/ home / tom / lib中,正如预期的那样.

但是,当我激活我的虚拟环境并运行pip install cvxopt时,我收到以下错误:

<snip>
gcc -pthread -shared
build/temp.linux-x86_64-2.7/src/C/base.o 
build/temp.linux-x86_64-2.7/src/C/dense.o
build/temp.linux-x86_64-2.7/src/C/sparse.o
-L/usr/lib -L/public/apps/python/2.7.4/lib
-lm -llapack -lblas -lpython2.7 -o build/lib.linux-x86_64-2.7/cvxopt/base.so

/usr/bin/ld: cannot find -llapack

collect2: ld returned 1 exit status

error: command 'gcc' failed with exit status 1

我已经尝试将/ home / tom / lib添加到LD_LIBRARY_PATH和LD_RUN_PATH,但这些似乎都不会影响pip用于构建模块的gcc命令行选项.

任何人都可以告诉我如何提供pip的图书馆搜索路径?有没有更好的办法?

解决方法

经过一些实验,我能够解决问题.我要做的第一件事是为LAPACK启用共享库:

~/src/lapack-3.5.0 $cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/home/tom .
~/src/lapack-3.5.0 $make install

然后我导出了LD_FLAGS以包含正确的库搜索路径:

export LD_FLAGS="-L/home/tom/lib"

然后我重新尝试从源代码安装cvxopt进入虚拟环境:

~/src/cvxopt-1.1.6 $. venv/bin/activate
~/src/cvxopt-1.1.6 (venv)$python setup.py build install

我没有尝试使用LD_LIBRARY_PATH或LD_RUN_PATH来确定它们是否仍然需要LD_FLAGS.但是,我确实确定需要一个共享的LAPACK库; cvxopt不会链接到静态库.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读