edd*_*313 11 python conda python-poetry
我有一个 conda 环境,我想将其转换为诗歌环境。
我尝试过的是将environment.yamlconda环境的翻译成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
Run Code Online (Sandbox Code Playgroud)
手动创建pyproject.toml文件environment.yaml。我添加了从conda env export. 这是结果:
# 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"
Run Code Online (Sandbox Code Playgroud)
使用 创建环境poetry init,它将自动读取 toml 文件。
该过程似乎有效,但它是相当手动的并且容易出错。 有没有更好的办法?
不,没有更好的办法了。Conda 是一个通用的包管理器,无法区分 Python 和非 Python 包,因此这必须通过手动管理来完成。
此外,包名称也可能不同。例如py-opencv(conda-forge)与opencv-python(PyPi)。
除了拉下--from-historyYAML 之外,它还可能有助于转储pip list --format=freeze. 这可以帮助解决在 Conda 和 PyPI 中使用不同名称的任何棘手的包。
如果环境直接使用任何 PyPI 包,则不会从conda env export --from-history. 但是,当使用(带有通道pypiconda list的条目) 或 plain时,这些将会出现,如果有的话,它会有一个部分。conda env exportdependencies.pip:
| 归档时间: |
|
| 查看次数: |
7455 次 |
| 最近记录: |