11.4 以Conda包的形式发布一个简单的项目
Last updated
Was this helpful?
Last updated
Was this helpful?
NOTE:此示例代码可以在 中找到。该示例在CMake 3.5版(或更高版本)中是有效的,并且已经在GNU/Linux、macOS和Windows上进行过测试。
虽然PyPI是发布Python包的标准平台,但Anaconda ( )更为可能更为流行,因为它不仅允许使用Python接口发布Python或混合项目,还允许对非Python项目进行打包和依赖关系管理。这个示例中,我们将为一个非常简单的C++示例项目准备一个Conda包,该项目使用CMake配置和构建,除了C++之外没有依赖关系。下一个示例中,我们将会来看看一个更复杂的Conda包。
我们的目标是打包以下示例代码(example.cpp
):
CMakeLists.txt
文件给出了最低版本要求、项目名称和支持的语言:
使用example.cpp
构建hello-conda
可执行目标:
使用CMakeLists.txt
定义安装目标:
将在一个名为meta.yaml
的文件中,对Conda包进行描述。我们将把它放在conda-recipe
目录下,文件结构如下:
meta.yaml
包含如下内容:
现在来构建包:
过程中屏幕上看到大量输出,但是一旦构建完成,就可以对包进行安装。首先,在本地进行测试:
现在准备测试安装包,打开一个新的终端(假设Anaconda处于激活状态),并输入以下内容:
测试成功后,再移除包装:
CMakeLists.txt
中,安装目标是这个示例的一个基本组件:
目标的二进制文件会安装到${CMAKE_INSTALL_PREFIX}/bin
中。变量由Conda定义,并且构建步骤中定义在meta.yaml
:
将安装目录设置为${prefix}
(Conda的内部变量),然后构建并安装项目。调用构建目录命名为build_conda
的动机与前面的示例类似:特定的构建目录名可能已经命名为build
。
配置文件meta.yaml
可为任何项目指定构建、测试和安装步骤。详情请参考官方文档:
要将Conda包上传到Anaconda云,请遵循官方的Anaconda文档:
此外,也可以考虑将Miniconda,作为Anaconda的轻量级替代品: