问题标签 [conda-build]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Conda-build 忘记安装 Python
我正在尝试重新打包一个库。我已经阅读了这个页面,并且说明真的很愚蠢。我的意思是,那里真的没有任何说明。只是意识流。
无论如何,它永远不会进入重新打包阶段,仅仅是因为无论出于何种原因conda-biuld
决定它需要将$PYTHON
变量设置为/home/wvxvw/anaconda3/conda-bld/pylibjpeg-openjpeg_1624870917374/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/python
——多么美妙的名字!但是,它忘记了实际放任何东西。实际上,bin
该位置甚至没有目录。
在这一点上,我不想理解为什么会这样。conda-build
是我用过的最愚蠢的工具,而且,我希望永远不要再碰它。如果有一个meta.yaml
用于打包可重定位共享库的模板,我将不胜感激,我可以复制和修改它以适应我正在尝试打包的库并忘记这个噩梦。
这是我meta.yaml
现在的样子:
注意。如果我不尝试包含我认为我需要做的编译器,如果我想conda-buil
处理 rpath(是吗?),那么构建有点工作......但测试失败,因为......谁知道什么。无法重现conda
运行测试的环境,它打印的错误都是无关紧要的,如果我尝试手动重现它,它确实有效......
python - 如何手动运行 conda-build 运行的测试?
conda-build
可以指定运行测试的“配方” 。基本测试导入刚刚构建的包。这个测试对我来说失败了,但是当我尝试手动运行它时,一切正常......
在我的meta.yaml
:
这就是构建失败的方式:
如果我这样做:
所以,它就在那里,一切都很好。该软件包已正确构建...为什么conda-build
无法导入它?
python - 如何解决 conda 的 pycosat 依赖?
我正在尝试安装 conda。但它显示我缺少对pycosat
. 我正在尝试构建和安装 python-pycosat 0.6.3。我已经从这里下载了 zip 文件。我已经提取它并从内部运行sudo python setup.py install
。
它给了我结果:
但是在那之后当我仍然尝试安装conda时,它仍然说pycosat丢失了。我究竟做错了什么?
python - 在 Conda 包中将版本环境变量从构建时间传递到运行时
我的包的版本被定义为一个环境变量(VERSION
)。读取此环境变量setup.py
并将其传递给meta.yaml
. 这是我的包构建的版本。
当我的包运行为package --version
时,用户应该会看到这个正确的版本变量值。
我的问题是:如何在构建阶段(VERSION=1.0.0 conda build package
)将这些信息从环境变量传递到运行阶段(conda install package && package --version
)?
我正在使用build.sh
脚本。我想到的一种方法是echo $VERSION > version.txt
放入build.sh
. 但我不知道是否有一个$PREFIX/static
目录,类似于$PREFIX/bin
.
python - 目标环境上的 conda 包选择器
我想知道如果给定的包安装在安装环境目标中,您是否可以在 conda 包配方中指定依赖项的选择器以仅选择它。
所以想象一个这样的食谱:
如您所见,最后一行包含一个要求,对于已安装的名为“jupyterlab”的软件包,该要求应该是可选的。最终这已经实现了,但我不知道/无法找到它 - 或者必须先设计/编写它。
很高兴有任何答案将我指向正确的方向。
python - conda-build 和依赖解析
我有一个基于 conda 的项目,它在meta.yaml
. 这些依赖项当然有自己的依赖项,我的meta.yaml
. 结果,构建我的项目conda build
有时会导致构建使用不同的依赖项。
我想在某种锁定文件中指定所有依赖项,以便每次执行时conda build
都使用相同的依赖项。
我查看了 conda-build 文档,并找到了关于 reproducibility 的部分,但它并没有真正说明如何创建可重现的构建。
有什么方法可以conda build
在每次运行时使用相同的依赖树?
python - 执行 conda-build 找不到任何文件
我正在尝试构建一个简单的包以上传到 anaconda 云。我已经走了很长一段路来让一个小例子工作,但我无法在目标机器上使用由 conda 构建的包(总是给我一个 ModuleNotFound-Error)。但是,我怀疑这是目标机器的错误(更可能是构建过程搞砸了) - 所以请耐心等待,让我解释一下我做了什么。
我的 python 代码只是一个文件,里面有一个函数
如前所述,我想使用 conda-build 进行构建并将包上传到我的 anaconda 云频道。我创建了一个名为 conda-recipe 的文件夹,其中包含 bld.bat、build.sh 和 meta.yaml 文件。所以完整的结构是这样的:
我通过 Anaconda 命令行工具更改为项目根目录,然后运行
一切似乎都工作正常,上传到 anaconda 云也正在工作(上传包)。如果我换到另一台机器,我什至可以通过运行安装包
但是,当我从 Jupyter Notebook 或 Pycharm 中运行包时,我收到关于我的包的“ModuleNotFound”错误。首先,我认为这可能与我的目标系统(即我使用包的位置)有关,我已经阅读了几篇文章,其中我确保 PYTHONPATH 设置正确,并且 python 安装确实查看了所在的文件夹包安装到。我知道这个包真的被安装了,python 安装会查看相应的目录。此外,conda list
表示该软件包已安装。
在这个问题上投入了 1 1/2 天后,我花时间审查了我的构建过程并完成了以下工作:如果我只运行带有参数 sdist 的 setup.py 文件,则会创建一个 tar.gz 文件。我可以上传这个,anaconda cloud 识别出该文件是一个 pypi-Archive。我什至可以在目标机器上下载并安装这个文件并在那里成功使用它。所以,一般来说,我会说我的代码没问题(惊喜),目标机器的 python 安装也没问题。因此,我回到了 conda-build-command。相信我,我不止一次看过文档。
但是, conda-build 的输出在结尾处显示以下内容:
对我来说,这表明 conda 构建过程并没有真正产生可行的输出。因此,我尝试了几个选项来指定 meta.yaml 中的源部分:url、git_url、路径。没有一个导致不同的输出。以最新形式查看我的 meta.yaml:
我的 bld.bat:
我的 build.sh:$PYTHON setup.py install
无论我如何更改我的 meta.yaml 文件,我总是得到没有找到输出文件的输出。但是,当检查 anaconda 构建目录时,我可以看到有名为 src_cache 和 git_cache 的非空文件夹,因此我知道 anaconda 至少可以访问这些文件。
所以 - 谁能告诉我,为什么
- conda build 告诉我有 0 个文件
- 我不能使用我的 conda 模块,它总是给我一个 ModuleNotFound 错误?
jinja2 - 在 Windows 10 下,如何使 {{ compiler('c') }} 在 meta.yaml 中为 conda 构建工作?
我正在尝试在 Windows 10 下我的一个文件的部分中使用新的{{ compiler('c') }}
Jinja 命令。但是,当我这样做时,构建中断,无法“找到” ,这很奇怪,因为它确实找到了我的Visual Studio安装(即 - 我在日志中看到正确的 VS 版本号。)。相反,我能够成功构建,但这给我留下了一个不可移植的文件。:(requirements:build
meta.yaml
conda build
cl.exe
vs2019_win-64
meta.yaml
有谁知道我需要做什么才能让它工作?
根据@merv 的要求:
conda-build
版本:
我正在尝试构建的一个包,它表现出上述行为,是:Chaco
. 这是我的构建meta.yaml
文件的内容:Chaco
python - 如何指定 conda 构建包的源(git 分支)
我创建了一个成功构建的 conda 包,并且可以使用 conda 进行安装。我正在使用versioneer自动生成我的构建版本号。我的项目位于具有多个分支的 git 存储库中。
我的问题是,当我想安装软件包时,conda 将安装最后构建的版本(无论分支),而我希望它默认安装分支 Master 的最后一个版本。我的解决方法是手动指定我想要的版本的版本号。
有没有办法用 versioneer 生成版本号,这将使 conda install 优先安装分支 master 的最后一个构建版本?或者,有没有办法指定 conda 分支以获取最新版本?
谢谢
python - 从 PIP 构建 Conda 包。构建 Conda 包时缺少依赖项问题
我已经使用 pip 构建了一个自定义 python 包,它工作正常。现在我想使用 Conda 构建相同的包,但 Conda 在从 YAML 文件下方安装嵌套依赖项时抛出错误。 元.yaml
使用 Conda 构建时出现此错误
似乎这些软件包在 Conda Mirror 上的版本与它们在 pip (PyPi) 中的版本不同。