首页 > 其他分享 >如何为anaconda配置动态链接库——ERROR: compiler_compat/ld: cannot find

如何为anaconda配置动态链接库——ERROR: compiler_compat/ld: cannot find

时间:2023-08-20 21:13:13浏览次数:37  
标签:compat ld lib LIBRARY cannot 设置 anaconda 动态链接库 PATH

现在为python编译lib库的环境主要是使用anaconda,而之前往往都是使用自编译python环境,然后使用Linux的系统lib环境,但是现在由于都是使用anaconda环境来编译python的扩展lib库,那么也就出现了为anaconda设置动态链接库这个问题了。

 

我们为Linux系统环境设置动态链接库地址的方式主要有:

方法一:在配置文件/etc/ld.so.conf中指定动态库搜索路径;
方法二:通过环境变量LD_LIBRARY_PATH指定动态库搜索路径

 

但是这两种方式设置的动态链接库并不适用于anaconda环境,anaconda环境自己本身就有自己的动态链接库的链接器,一般为:
anaconda3/compiler_compat/ld


因此在anaconda环境下进行编译如果在系统默认的lib库地址下寻找不到目标lib则会报错:
ERROR: compiler_compat/ld: cannot find

 

当然为了解决anaconda的这个自带链接器的这个问题,我们可以把所有的lib库都安装到系统路径下,如x86_64系统的系统lib地址:
/usr/lib/x86_64-linux-gnu/

 


但是有时即使在系统lib路径下也会报错,那么我们就需要手动的把一些lib库拷贝到anaconda的lib路径下:
比如把lib文件拷贝到:/home/xxxxxx/anaconda3/lib/
但是这种copy的方式并不是很灵活,经过测试发现anaconda虽然不接受LD_LIBRARY_PATH的设置,但是接受LIBRARY_PATH的设置。



因此,我们就有了最灵活的为anaconda设置动态链接库的方法,那就是通过设置变量LIBRARY_PATH来为anaconda设置动态链接库。
比如  /home/xxxxxxx/xxx 下的某个lib库要设置给anaconda,那么我们可以设置:

export LIBRARY_PATH=/home/xxxxxxx/xxx:$LIBRARY_PATH

 



参考:

https://zhuanlan.zhihu.com/p/101027069

 


===============================================

 

标签:compat,ld,lib,LIBRARY,cannot,设置,anaconda,动态链接库,PATH
From: https://www.cnblogs.com/devilmaycry812839668/p/17644566.html

相关文章

  • ffpyplayer源码编译报错:ffpyplayer/tools.pyx:182:28: Cannot assign type 'void (*)(
    编译ffpyplayer报错,具体错误如标题。  报错信息:ffpyplayer/tools.pyx:182:28:Cannotassigntype'void(*)(void*,int,constchar*,va_list)except*nogil'to'void(*)(void*,int,constchar*,va_list)noexceptnogil'  解决方法:pipinstallblos......
  • link.ld手册备份
    设定入口点在程序中执行的第一条指令称为入口点。您可以使用ENTRY链接器脚本命令来设置入口点。ENTRY(symbol)也可以通过其它方式设定入口点:‘-e’输入命令行选项;‘.text’部段的第一个字节的地址;其它命令命令1部分INCLUDEfilenameINPUT(file,file,…)/......
  • a build cache key that uniquely defines the task’s outputs based on its inputs
    BuildCachehttps://docs.gradle.org/current/userguide/build_cache.htmlTheGradle buildcache isacachemechanismthataimstosavetimebyreusingoutputsproducedbyotherbuilds.Thebuildcacheworksbystoring(locallyorremotely)buildoutputsan......
  • 以太坊中有没有使用LevelDB
    在早期的以太坊实现中,开发者曾经考虑使用LevelDB作为以太坊的数据库,但最终没有使用。目前,以太坊没有使用LevelDB作为其数据库。以太坊使用了一种称为“Trie”的数据结构来组织和管理数据,类似于LevelDB的功能。Trie可以高效地存储和查询键值对,并且可以有效地管理以太坊网络中的交易......
  • 高中英语学习0803   leave out遗漏 16.should竟然/应该 17.
    1.  getthrough到达,度过getaround到处走走getalong进展,和睦相处getacross通过2.  beworthof+宾语3.非限定性定语从句,只能用which引导4.providesthforsbsupplysbwithsthprovidesbwithsth5.goabroad去国外,出国  g......
  • vue.js:5108 [Vue warn]: Cannot find element: #body_container
    1、原因:我把Vue挂载元素的JS放在了html加载完成的前面了2、解决:放到html加载完成之后就可以了 ......
  • Visual Studio 2022 没有MySQLDatabase数据源
    解决办法: ①下载安装MySQLODBC驱动②运行ODBC数据源管理器③添加MySQL数据源,填入相应信息,测试通过即可④打开VS 工具>>连接到数据库,选择MicrosoftODBCDataSource⑤下拉列表中选择刚才新建的ODBC数据源,确定。       由此,在VS的侧边栏就可以对MySQL......
  • 启动mysql时报错"/etc/init.d/mysqld: Permission denied"
    问题描述:启动mysql时报错"/etc/init.d/mysqld:Permissiondenied",如下所示:数据库:mysql5.5.18系统:rhel6.51、异常重现[root@MySQL5518-Master~]#servicemysqldstartenv:/etc/init.d/mysqld:Permissiondenied2、解决步骤[root@MySQL5518-Master~]#ll/etc/init.d......
  • Python程序员Visual Studio Code指南2 Hello World
    2HelloWorld2.1安装Python扩展VisualStudioCode的Python扩展提供了对Python语言的支持,包括语法着色、代码补全、过滤、调试、代码导航和代码格式化等功能,以及JupyterNotebook支持等Python特有的功能。您可以在VisualStudioCode的扩展视图中安装Python扩展。与从扩展市......
  • ue5游戏逆向之寻找GWorld,GName和GUObjectArray
    对于ue4而言,符号如果暴露出来的可以直接通过导出表寻找GWorld,GUObjectArray。ue4.23版本以前的通过GNames函数,ue4.23版本及其以后的通过FNamePool::FNamePool构造函数寻找GName。对于未暴露符号的寻找方法和ue5未暴露符号的三件套找法一样。寻找GWorld查看UE5.1源码,GWorld定义在......