使用conda build时使用正确的环境变量

时间:2018-11-03 14:29:54

标签: python anaconda conda conda-build

我想将c ++软件包(https://github.com/modsim/cadet)作为带有蟒蛇包装的anaconda软件包提供。该软件包取决于hdf5,LAPACK和sundials软件包。所有这些都可以作为anaconda软件包使用,这非常方便。

目前,我使用以下小脚本构建软件包(无conda):

#!bin/bash
export SUNDIALS_ROOT=~/anaconda3/include/sundials
cmake -DCMAKE_INSTALL_PREFIX="~/Dokumente/projects/pycadet/cadet" -DCMAKE_LIBRARY_PATH="~/anaconda3/lib" -DBLA_VENDOR=Intel10_64lp ../code/
make
make install

我对某些事情可能固然很简单,但阅读所有文档并观看youtube上的教程并没有帮助。如何使用conda-build使此代码通用?我想以某种在任何系统上都可以使用的方式设置日di,mkl,hdf5等的路径。

如果我理解正确,则可以在系统上创建conda软件包,例如linux64。它涉及到setup.sh脚本中对cmake的调用。但是系统如何知道所有库在另一台计算机上的位置(例如,如果有人想使用conda install安装我的软件包)?例如:

export SUNDIALS_ROOT =〜/ anaconda3 / include / sundials

此行显然仅适用于我的计算机或主目录中安装了anaconda的任何其他计算机,并且名为anaconda3。

任何提示都将受到高度赞赏。我正在浏览conda构建配方示例,并希望找到一个合适的示例,但是我无法想象我是唯一尝试为带有共享库的c ++软件包提供python包装器的人。

编辑

我通过以下步骤更加接近了我想要实现的目标:

我添加了:     conda config-添加通道conda-forge

然后编辑meta.yaml:

软件包:         名称:pycadet         版本:3.1.2

build:
    number: 0
source:
    url: https://github.com/modsim/CADET/archive/v3.1.2.zip

requirements:
    build:
    - sundials
about:
    home: https://github.com/modsim/CADET
    license: GPL
summary: A package for numerical simulation of chromatography

所有要求都会自动下载,并且一切正常,直到make崩溃为止。 build.sh:

#!bin/bash
#
# The build receipy for conda 
#
#
#
#
# You can run build.sh with bash -x -e. The -x makes it echo each command that is run
# and the -e makes it exit whenever a command in the script returns nonzero exit status.
set -x -e

INCLUDE_PATH="${PREFIX}/include"
LIBRARY_PATH="${PREFIX}/lib"
CADET_PATH="${PREFIX}/cadet"

# get out of the work directory (contains downloaded cadet)
cd ..

# make the build directory (in source builds are prohibited)
mkdir build

# get into it
cd build

#export SUNDIALS_ROOT=${PREFIX}/include/sundials
cmake -DCMAKE_INSTALL_PREFIX="${CADET_PATH}" -DCMAKE_LIBRARY_PATH="${LIBRARY_PATH}"-DBLA_VENDOR=Intel10_64lp ${SRC_DIR} ../work/
make
make install

有任何提示吗?

0 个答案:

没有答案