环境变量#
基于构建过程状态的动态行为#
有时您可能希望以不同的方式在 conda-build 的渲染-构建-测试流程中的多个步骤中处理单个文件。Conda-build 在这些阶段中的每一个期间都会设置 CONDA_BUILD_STATE 环境变量。可能的值是
RENDER---在评估
meta.yaml
文件期间设置。BUILD---在处理
bld.bat
或build.sh
脚本文件期间设置。TEST---在运行任何
run_test
脚本期间设置,这也包括在meta.yaml
中test/commands
部分中定义的任何命令。
CONDA_BUILD_STATE 变量在这些位置之外未定义。
构建过程中设置的环境变量#
在构建过程中,将设置以下环境变量,在 Windows 上使用 bld.bat
,在 macOS 和 Linux 上使用 build.sh
。默认情况下,这些是构建脚本可用的唯一变量。除非另有说明,否则不会从您调用 conda-build
的 shell 环境继承任何变量。要覆盖此行为,请参阅继承的环境变量。
ARCH |
是 |
BUILD_PREFIX |
安装命令行工具的构建前缀。 |
CMAKE_GENERATOR |
当前构建环境的 CMake 生成器字符串。在 Linux 系统上,这始终是 |
CONDA_BUILD=1 |
始终设置。 |
CPU_COUNT |
系统上的 CPU 数量,如 |
SHLIB_EXT |
共享库扩展。 |
DIRTY |
如果 |
HTTP_PROXY |
从您的 shell 环境继承。 |
HTTPS_PROXY |
从您的 shell 环境继承。 |
LANG |
从您的 shell 环境继承。 |
MAKEFLAGS |
从您的 shell 环境继承。可用于设置 make 的附加参数,例如 |
PY_VER |
要构建的 Python 版本。使用 |
NPY_VER |
要构建的 NumPy 版本。使用 |
PATH |
从您的 shell 环境继承,并用 |
PREFIX |
构建脚本应安装到的主机前缀。 |
PKG_BUILDNUM |
正在构建的包的构建号。 |
PKG_NAME |
正在构建的包的名称。 |
PKG_VERSION |
正在构建的包的版本。 |
|
正在构建的包的完整构建字符串,包括哈希。示例:py27h21422ab_0。Conda-build 3.0+。 |
|
正在构建的包的哈希,不包含前导 h。示例:21422ab。Conda-build 3.0+。 |
PYTHON |
主机前缀中 Python 可执行文件的路径。Python 仅在主机前缀中安装,当它被列为主机要求时。 |
PY3K |
当 Python 3 安装在主机前缀中时为 |
R |
主机前缀中 R 可执行文件的路径。R 仅在主机前缀中安装,当它被列为构建要求时。 |
RECIPE_DIR |
食谱的目录。 |
SP_DIR |
Python 的 site-packages 位置。 |
SRC_DIR |
源文件解压缩或克隆到的路径。如果源文件不是识别文件类型(zip、tar、tar.bz2 或 tar.xz)---则这是一个包含源文件副本的目录。 |
STDLIB_DIR |
Python 标准库位置。 |
build_platform |
conda 可执行文件的本机子目录 |
Windows 上的 Unix 风格包,通常是静态链接到可执行文件,是在主机前缀下的特殊 Library
目录中构建的。下表中列出的环境变量仅在 Windows 上定义。
CYGWIN_PREFIX |
与 PREFIX 相同,但作为 Unix 风格的路径,例如 |
LIBRARY_BIN |
|
LIBRARY_INC |
|
LIBRARY_LIB |
|
LIBRARY_PREFIX |
|
SCRIPTS |
|
VS_MAJOR |
构建内激活的 Visual Studio 版本的主版本号,例如 |
VS_VERSION |
构建内激活的 Visual Studio 版本的版本号,例如 |
VS_YEAR |
构建内激活的 Visual Studio 版本的发行年份,例如 |
下表中列出的环境变量仅在 macOS 和 Linux 上定义。
HOME |
标准 $HOME 环境变量。 |
PKG_CONFIG_PATH |
指向 |
下表中列出的环境变量仅在 macOS 上定义。
CFLAGS |
|
CXXFLAGS |
与 CFLAGS 相同。 |
LDFLAGS |
与 CFLAGS 相同。 |
MACOSX_DEPLOYMENT_TARGET |
与 Anaconda Python macOS 部署目标相同。当前为 |
OSX_ARCH |
|
下表中列出的环境变量仅在 Linux 上定义。
LD_RUN_PATH |
|
Git 环境变量#
下表中列出的环境变量在源代码为 git 存储库时定义,使用 git_url 或 path 指定源代码。
GIT_BUILD_STR |
通过下划线将 GIT_DESCRIBE_NUMBER 和 GIT_DESCRIBE_HASH 连接起来的字符串。 |
GIT_DESCRIBE_HASH |
从 |
GIT_DESCRIBE_NUMBER |
表示自最近标签以来的提交次数的字符串。 |
GIT_DESCRIBE_TAG |
表示从当前提交到最近标签的字符串,基于 |
GIT_FULL_HASH |
包含当前 HEAD 的完整 SHA1 的字符串。 |
这些可以与模板化的 meta.yaml
文件结合使用,以根据 git 存储库的状态设置某些内容(例如构建字符串)。
Mercurial 环境变量#
下表中列出的环境变量在源代码为 mercurial 存储库时定义。
HG_BRANCH |
表示当前活动分支的字符串。 |
HG_BUILD_STR |
通过下划线将 HG_NUM_ID 和 HG_SHORT_ID 连接起来的字符串。 |
HG_LATEST_TAG |
表示从当前提交到最近标签的字符串。 |
HG_LATEST_TAG_DISTANCE |
表示自最近标签以来的提交次数的字符串。 |
HG_NUM_ID |
表示修订号的字符串。 |
HG_SHORT_ID |
表示提交哈希的字符串。 |
继承的环境变量#
除了上面提到的之外,不会从您调用 conda-build 的环境中继承任何变量。您可以选择通过将它们添加到 meta.yaml
中来继承其他环境变量
build:
script_env:
- TMPDIR
- LD_LIBRARY_PATH # [linux]
- DYLD_LIBRARY_PATH # [osx]
如果从您的 shell 环境中缺少继承的变量,它将保持未分配,但会发出警告,指出它没有分配任何值。
此外,可以通过包含 =
后跟所需值来设置值
build:
script_env:
- MY_VAR=some value
警告
继承环境变量可能会使其他人难以从您的食谱中复制二进制文件。谨慎使用此功能,或使用 =
语法显式设置值。
注意
如果您使用 --no-test
和 --test
分开构建和测试阶段,则需要确保构建时和测试时存在的环境变量匹配。如果您不这样做,包哈希可能会使用不同的值,并且您的包可能无法测试,因为哈希值将不同。
影响构建过程的环境变量#
CONDA_PY |
用于构建包的 Python 版本。应为 |
CONDA_NPY |
用于构建包的 NumPy 版本,例如 |
CONDA_PREFIX |
用于构建包的 conda 环境的路径,例如 |
影响测试过程的环境变量#
所有上述环境变量在测试过程中也都会被设置,使用测试前缀而不是构建前缀。