Conda 到诗歌环境
Conda to poetry environment
我有一个 conda 环境,我想将其转换为 poetry 环境。
我尝试过的是将conda环境的environment.yaml
翻译成poetry可以读取的pyproject.toml
文件。这里有步骤:
生成yaml文件
conda env export --from-history > environment.yaml
--from-history
标志仅包含我明确要求的包。这是安装 numpy 后文件的样子。
# environment.yaml
name: C:\Users\EDOCIC\Screepts\My_projects\Tests\conda2poetry\condaenv
channels:
- defaults
dependencies:
- numpy
从 environment.yaml
手动创建 pyproject.toml
文件。我添加了从 conda env export
获得的 numpy 版本。这是结果:
# pyproject.toml
[tool.poetry]
name = "conda2poetry"
version = "0.1.0"
description = ""
authors = [""]
[tool.poetry.dependencies]
python = "~3.7"
numpy = "^1.21.5"
[tool.poetry.dev-dependencies]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
用poetry init
创建环境,会自动读取toml文件
该过程似乎可行,但它非常手动且容易出错。
有没有更好的方法?
不,没有更好的方法。 Conda 是一个通用包管理器,无法区分 Python 和 non-Python 包,因此必须通过手动管理来完成。
提示
除了拉下 --from-history
YAML 之外,它还可能有助于转出一个 pip list --format=freeze
。这可能有助于解决在 Conda 和 PyPI 中使用不同名称的任何棘手的包。
如果环境直接使用任何 PyPI 包,这将不会从 conda env export --from-history
中看到。但是,这些将在使用 conda list
(带有通道 pypi 的条目)或普通 conda env export
时出现,如果有任何 dependencies.pip:
部分.
我有一个 conda 环境,我想将其转换为 poetry 环境。
我尝试过的是将conda环境的environment.yaml
翻译成poetry可以读取的pyproject.toml
文件。这里有步骤:
生成yaml文件
conda env export --from-history > environment.yaml
--from-history
标志仅包含我明确要求的包。这是安装 numpy 后文件的样子。# environment.yaml name: C:\Users\EDOCIC\Screepts\My_projects\Tests\conda2poetry\condaenv channels: - defaults dependencies: - numpy
从
environment.yaml
手动创建pyproject.toml
文件。我添加了从conda env export
获得的 numpy 版本。这是结果:# pyproject.toml [tool.poetry] name = "conda2poetry" version = "0.1.0" description = "" authors = [""] [tool.poetry.dependencies] python = "~3.7" numpy = "^1.21.5" [tool.poetry.dev-dependencies] [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"
用
poetry init
创建环境,会自动读取toml文件
该过程似乎可行,但它非常手动且容易出错。 有没有更好的方法?
不,没有更好的方法。 Conda 是一个通用包管理器,无法区分 Python 和 non-Python 包,因此必须通过手动管理来完成。
提示
除了拉下 --from-history
YAML 之外,它还可能有助于转出一个 pip list --format=freeze
。这可能有助于解决在 Conda 和 PyPI 中使用不同名称的任何棘手的包。
如果环境直接使用任何 PyPI 包,这将不会从 conda env export --from-history
中看到。但是,这些将在使用 conda list
(带有通道 pypi 的条目)或普通 conda env export
时出现,如果有任何 dependencies.pip:
部分.