如何使用POYMENT从现有项目导入requirements.txt

2024-04-19 05:06:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在现有项目中试用Poetry。它最初使用pyenv和virtualenv,因此我有一个带有项目依赖项的requirements.txt文件

我想使用poethy导入requirements.txt文件,以便第一次加载依赖项。我查阅了诗歌的文献资料,但还没有找到一种方法。你能帮我吗

我知道我可以手动添加所有包,但我希望有一个更自动化的过程,因为有很多包


Tags: 文件项目方法txtpyenvpoetryvirtualenv过程
3条回答

poetry不直接支持这一点。但是,如果您有一个手工制作的所需软件包列表(最好没有任何版本号),其中只包含主要依赖项,而不包含依赖项的依赖项,那么您可以这样做:

$ cat requirements.txt|xargs poetry add

我很感激这可能有点晚,但你可以使用

poetry add `cat requirements.txt`

我没有足够的声誉来评论,但对@Liang的回答的一个改进是省略回声而称之为诗歌本身

cat requirements.txt | grep -E '^[^# ]' | cut -d= -f1 | xargs -n 1 poetry add

在我的例子中,这成功地将包添加到了pyproject.toml文件中

这是我的requirements.txt文件的一个片段,仅供参考:

pytz==2020.1  # https://github.com/stub42/pytz
python-slugify==4.0.1  # https://github.com/un33k/python-slugify
Pillow==7.2.0  # https://github.com/python-pillow/Pillow

当调用cat requirements.txt | grep -E '^[^# ]' | cut -d= -f1(注意为了演示省略了xargs -n 1 poetry add)时,它将输出以下内容:

pytz
python-slugify
Pillow
# NOTE: this will install the latest package - you may or may not want this.

添加开发依赖项与添加-D--dev参数一样简单

# dev dependancies example
cat requirements-dev.txt | grep -E '^[^# ]' | cut -d= -f1 | xargs -n 1 poetry add -D

最后,如果您的开发人员需求是从父需求文件安装的,例如:

-r base.txt

package1
package2

然后,当POMETH运行时,这将生成错误,但是,它将继续通过-r base.txt行并按预期安装包

在Linux manjaro上进行测试,并按照说明here安装诗歌

相关问题 更多 >