导出不带前缀变量的 conda 环境,该变量显示可执行文件的本地路径

2024-01-23

为了在我的团队中进行可重复的改进,我在新创建的存储库中导出了一个 conda 环境文件,该文件正在运行conda env export > environment.yml.

我的想法是让我的同事下载存储库并运行conda env create -f environment.yml并准备好使用该代码。

然而,我的一些同事向我指出,在yaml文件的底部有:

  - readline=7.0=hc1231fa_4
  - requests=2.18.4=py35h0d65e6b_1
  - setuptools=38.5.1=py35_0
  - six=1.11.0=py35h39a4c60_1
  - sqlite=3.22.0=h3efe00b_0
  - tk=8.6.7=h35a86e2_3
  - urllib3=1.22=py35he002d57_0
  - wheel=0.30.0=py35h5c0b906_1
  - xz=5.2.3=h0278029_2
  - zlib=1.2.11=hf3cbc9b_2
prefix: </path/to/your/anaconda/distribution>/envs/<env-name>/bin

最后一行与prefix变量实际上显示了我的机器名称和 miniconda 安装的唯一路径。

当我的同事尝试加载环境时,脚本实际上对他们来说工作得很好,这意味着prefixconda 基本上会忽略变量。

我曾经使用 virtualenvs,并且我的绝对路径进入一个应该共享的文件以使事情可以在不同的机器上重现的想法确实让我感到困惑。

所以我的问题是:前缀变量的用途是什么?有没有办法在没有它的情况下导出 conda 环境文件?


这个问题已经解决了here https://stackoverflow.com/questions/41274007/anaconda-export-environment-file,但没有真正解释其作用prefix。 至少有一个解决方案可以通过编程排除前缀行。

文中没有提到康达文档 https://conda.io/docs/commands/env/conda-env-export.html,除了以下事实:conda env export --prefix PATH允许指定前缀。 但请注意--name and --prefix这里的选项是独家的。

如果你看一下conda的代码,你会看到conda create指的是cli_install.check_prefix()。然后安装.py https://github.com/conda/conda/blob/370e05969595a7821e27ce1fdf5190490d5f9e01/conda/cli/install.py/似乎表明对环境名称进行了安全检查(摘自prefix)和完整的prefix路径,以确保不存在具有相同名称或路径的环境。

来自 conda/cli/install.py

def check_prefix(prefix, json=False):
    name = basename(prefix)
    error = None
    if name == ROOT_ENV_NAME:
        error = "'%s' is a reserved environment name" % name
    if exists(prefix):
        if isdir(prefix) and 'conda-meta' not in os.listdir(prefix):
            return None
        error = "prefix already exists: %s" % prefix

    if error:
        raise CondaValueError(error, json)

    if ' ' in prefix:
        stderrlog.warn("WARNING: A space was detected in your requested environment path\n"
                       "'%s'\n"
"Spaces in paths can sometimes be problematic." % prefix)

我的猜测是这个prefix in environment.yaml是确保conda就会知道在哪里创造环境。但在大多数情况下它似乎毫无用处,并且可能它的存在只是由于之间的机械联系--name and --prefix.

来自 conda.base.context.py Context()

# This block of code sets CONDA_PREFIX based on '-n' and '-p' flags, so that
# configuration can be properly loaded from those locations

EDIT:

事实是prefix甚至在“手动创建环境文件 https://conda.io/docs/user-guide/tasks/manage-environments.html#creating-an-environment-file-manually“ conda 文档的部分令人欣慰的是,这条线毫无用处......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导出不带前缀变量的 conda 环境,该变量显示可执行文件的本地路径 的相关文章

随机推荐

  • NodeJS 需要('..')?

    我一直在查看一些 NodeJS 示例 遇到以下情况 var module require var module require 我明白 require 的作用 但不明白这样写时它的作用是什么 有人可以向我解释一下吗 这是定义在https n
  • Javascript:如何获取函数内的父键?

    我有一些函数 存储在集合 数组中 并且希望获取密钥 函数名称 而不重新输入它 有没有什么捷径可以访问它 var functions collection function x function var name function x nam
  • IO Monad 在什么意义上是纯粹的?

    我已经将 IO monad 描述为 State monad 其中状态是 现实世界 这种 IO 方法的支持者认为 这使得 IO 操作变得纯粹 就像引用透明一样 这是为什么 从我的角度来看 IO monad 内部的代码似乎有很多可观察到的副作用
  • 更改嵌套转发器内下拉列表的选定值

    我尝试从 C 代码更改下拉列表选定的值
  • HTML 5中是不是不需要像HTML那样关闭标签呢?

    HTML 5中是不是不需要像HTML那样关闭标签呢 或者是 W3C 验证器中的错误 为什么此代码在 W3C 验证器中有效 p Some Text 如果它在 HTML5 中真的有效 我会感到惊讶 但是在 HTML5 中保持这种行为有效有什么好
  • 如何共享 Maven 原型?

    我创建了一个 Maven 原型 我想在我的公司内分享它 为此 我将其部署到我们的 Nexus 服务器上 并且可以从那里使用它 但这有点不方便 因为它似乎不在其他计算机上已知原型的目录中 解决方法是像这样使用它 mvn archetype g
  • 如何使用 firestore 运行地理“附近”查询?

    Firebase 中的新 Firestore 数据库本身支持基于位置的地理查询吗 即查找 10 英里内的帖子 或查找 50 个最近的帖子 我看到有一些现有的实时 firebase 数据库项目 例如 geofire 这些项目也可以适用于 fi
  • 将 JavaFX WebView 调整为文档正文所需的最小大小

    我正在为我的项目编写一个 JavaFX 自定义对话框 我需要一种变体但快速的模式来显示对话框内容 我了解controlsFX 实际上我正在使用它 但我想在 WebView 中显示内容 这样它会更可控 问题是关于 WebView 的大小我想找
  • C 有字符串类型吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我最近从 Java 和 Python
  • 有什么理由使用 threading.Lock 而不是 multiprocessing.Lock 吗?

    如果一个软件项目支持多处理已反向移植到的 Python 版本 是否有任何理由使用threading Lock over multiprocessing Lock 会一个multiprocessing锁也不是线程安全的吗 就此而言 是否有理由
  • 如何清理 React 事件处理程序中的 setTimeout/setInterval ?

    我怎样才能清理像这样的函数setTimeout or setInterval在 React 的事件处理程序中 还是说没有必要这样做 import React from react function App return
  • 无法连接到 MongoDB errno:61

    我使用 macports 安装了 MongoDB 并尝试运行mongo命令以启动 mongo shell 我收到以下错误 warning Failed to connect to 127 0 0 1 27017 reason errno 6
  • Lua - 执行存储在表中的函数

    我能够将函数存储到表中 但现在我不知道如何调用它们 最终表将有大约 100 个调用 因此如果可能的话 我想像在 foreach 循环中一样调用它们 谢谢 该表的定义方式如下 game level hints game level hints
  • Sikuli - 切换监视器和分辨率使脚本无效

    我确实经常在笔记本电脑屏幕和外部 24 英寸显示器之间切换 并且我确实注意到 如果我在笔记本电脑上拍摄快照 那么如果我在连接到 24 英寸显示器时运行脚本 测试将不再正常工作 如果我反过来 从 24 英寸显示器上拍摄快照 然后在笔记本电脑显
  • openssl.cnf 文件的正确位置

    我有一个Ubuntu系统 并且已经安装了OpenSSL 现在我想更改配置文件 我搜索了我的文件夹并找到了配置文件的以下位置 我应该使用哪一个来进行更改的主要 正确的 我需要在这里添加一个引擎 任何帮助 将不胜感激 以下是地点 usr loc
  • 有哪些算法可以比较两个字符串的相似程度?

    我需要比较字符串来确定它们是否代表相同的东西 这与人类输入的案例标题有关 其中缩写和其他小细节可能有所不同 例如 考虑以下两个标题 std string first Henry C Harper v The Law Offices of H
  • 在没有安装jruby的情况下在tomcat上执行rake任务

    我的 Rails 项目在 Warbler 的帮助下部署到 tomcat 但我需要能够在该服务器上运行 rake 任务 敬请关注 我希望在Warbler 1 4中有这个功能 社区成员 Jake Goulding 在这方面做了一些出色的工作 在
  • WPF 按钮 IsEnabled 基于 ComboBox 选择覆盖默认样式

    我有一个按钮正在查看 2 个组合框 以确保它们在启用之前具有值 问题是我这样做的方式是覆盖我的主题项目中声明的默认样式
  • 如何在Scala中分割字符串但保留与正则表达式匹配的部分?

    我的问题与拆分字符串 包括正则表达式匹配 https stackoverflow com questions 8844256 split string including regular expression match但对于斯卡拉来说 不
  • 导出不带前缀变量的 conda 环境,该变量显示可执行文件的本地路径

    为了在我的团队中进行可重复的改进 我在新创建的存储库中导出了一个 conda 环境文件 该文件正在运行conda env export gt environment yml 我的想法是让我的同事下载存储库并运行conda env creat