首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gmpy2安装但找不到libmpc.so.3

gmpy2安装但找不到libmpc.so.3
EN

Stack Overflow用户
提问于 2017-01-30 12:03:51
回答 2查看 971关注 0票数 0

我想在python2.7中使用gmpy2,但是当我试图导入它时,我得到:

代码语言:javascript
运行
复制
>>> import gmpy2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: libmpc.so.3: cannot open shared object file: No such file or directory

我使用pip: gmpy2安装了pip install -user gmpy2,安装看起来还不错

代码语言:javascript
运行
复制
  Could not find .egg-info directory in install record for gmpy2

但在那之后,它说安装是成功的。

我已经安装了MPC (1.0.3)、GMP (6.1.1)和MPFR (3.1.4),它们都可以工作,我的意思是我可以调用gcc foo.c -lmpcgcc bar.c -lmpfr,代码编译并按预期工作。我也有gmpy工作使用pip安装。我认为问题在于它们没有安装在默认目录中,因为我没有sudo权限。

libmpc.so.3所在的目录位于pip发出的gcc调用中,我还将CPATHCPPFLAGS设置为在my_prefix/include中查找,将LDFLAGS设置为查找my_prefix/lib

我真的不想使用MPC的功能,所以如果有一个简单的选项不安装gmpy2的那一部分,我会很高兴的。

我真的很困惑,我曾经听说过pip无法构建库,并且我已经离开并安装了依赖项,但是通常情况下,一旦传递了一个库,pip就会工作。

EN

Stack Overflow用户

回答已采纳

发布于 2017-01-30 19:45:08

我维护gmpy2,有几个命令行选项可以传递给setup.py,这些选项可能会有所帮助。我现在不能测试pip语法,但是这里有一些选项:

--shared=/path/to/gmp,mpfr,mpc将配置gmpy2以从指定目录加载库。

如果能够找到适当的库,--static--static=/path/to/gmp,mpfr,mpc将创建静态链接的gmpy2版本。

您还可以直接使用setup.py进行构建。它可能会产生更好的错误消息。同样,未经测试的命令:

python setup.py build_ext --static=/path/to/gmp,mpfr,mpc应该编译一个独立的、静态链接的need 2。因此,它需要移动到适当的位置。

更新

我已经测试了各种选择。

如果您试图使用不是由Linux发行版提供的GMP、MPFR和MPC版本,则需要指定由pip调用的基础setup.py的新文件位置。例如,我已经在本地/home/case/local中安装了更新版本。下面的命令将配置gmpy2以使用这些版本:

代码语言:javascript
运行
复制
pip install --install-option="--shared=/home/case/local" --user gmpy2

要编译静态链接版本(例如,为了简化集群中其他系统的分发),您应该使用以下方法:

代码语言:javascript
运行
复制
pip install --install-option="--static=/home/case/local" --user gmpy2

setup.py将使用指定的基目录来配置正确的包含路径(/home/case/local/ INCLUDE )和运行时库路径(/home/case/local/lib)。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41935467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档