将conda生成的requirements.txt文件转换为适用于pip的格式。

13 浏览
0 Comments

将conda生成的requirements.txt文件转换为适用于pip的格式。

我的目标是将conda生成的requirement.txt文件转换为可以与pip一起使用的.txt文件。我知道有关conda生成的requirement.txt文件,但我正在使用集群,无法使用conda。

  1. 是否有任何方法可以将这些文件转换为与pip兼容的文件?
  2. 是否有一套规则可以让我手动将conda生成的requirement.txt文件分解为与pip兼容的requirement.txt文件?例如,如果在(conda生成的)requirements.txt文件中出现以下行:

python3-sklearn-lib=0.18-5~pn0

我知道

  1. "="应该变为"=="
  2. "python3-"应该消失
  3. "sklearn"应该变为"scikit-learn"

但是我不知道在这个例子中"~pn0"的意义以及我应该如何将其"翻译"为pip的requirements.txt文件。

我知道这个问题在这里有所讨论,但我的情况不同:我有conda生成的requirements.txt文件,并尝试将其转换为与pip兼容的文件。

0
0 Comments

问题出现的原因是Conda和PyPI之间的软件包名称之间的关系是任意的,没有明确的规则来映射它们。有时它们是相等的,有时它们包含前缀/后缀,如py或python,有时有连字符,有时没有连字符。此外,许多Conda软件包并不是Python软件包,例如python本身。没有任何元数据可以指示PyPI的等效软件包名称(如果有的话),因此在没有实际的暴力迭代所有软件包以提取此映射的情况下,无法确定它。

解决方法是,如果你需要一个pip requirements文件,可以从环境中导出它。如果你只有Conda的文件,而没有环境,则最简单的方法可能是使用Conda重新创建环境,然后使用pip list --format=freeze命令。

文章的结尾还指出,Conda在没有提升权限的情况下完全可用,并且几乎在我使用的HPC服务器上普遍使用。建议安装Miniforge以解决问题。

0