尝试安装依赖于C库头文件的python库。目前,如果我尝试:
conda install hdf5
pip install bitshuffle
然后,由于无法找到gcc
hdf5.h
错误
注意,conda 已已下载hdf5.h
(至envs/myenv/include
),并且作为解决方案,在这种情况下有一个替代渠道,conda可以从中安装bitshuffle。
是否建议练习conda install gcc
而不是使用(或让pip使用)系统默认编译器? conda activate
是否应将其include
目录添加到常见编译器使用的环境变量中?将conda和pip用法结合起来是不好的做法吗?
答案 0 :(得分:0)
我发现the *-compiler
packages (e.g., c-compiler
) from Conda Forge相对容易使用,并且它们的行为完全符合您的描述。也就是说,每当激活环境时,它们就会自动将环境的include
和lib
文件夹添加为编译器的搜索位置。从技术上讲,它们的主要用途是用于构建Conda Forge软件包,但是使用它们作为本地构建的编译器时,我没有遇到任何问题。
如果您仍然想使用自己的系统级编译器,则可以手动创建自己的activation scripts来模仿*-compiler
软件包的功能(例如,更改CLFAGS
和{ {1}}。
我要说的建议做法是保持环境尽可能独立。这样做的好处是可以创建一个部署到多个平台(例如 osx-64 和 linux-64 )的环境定义(YAML),并可以使用相同的命令。另外,如果您构建与LDFLAGS_LD
兼容的代码,则基本上可以轻松地将其代码本身打包为Conda软件包。
最后,应注意,所讨论的原始软件包是now on Conda Forge。 The meta.yaml
显示了哪些软件包足以使环境构建该软件包。