我正在现有项目中试用Poetry。它最初使用pyenv和virtual env,所以我有一个带有项目依赖项的modex = mode(np.diff(modeloa['X'].unique()))
modey = mode(np.diff(modeloa['Y'].unique()))
modez = mode(np.diff(modeloa['Z'].unique()))
for numberx, numbery, numberz in zip(modeloa['X'].unique(),modeloa['Y'].unique(),modeloa['Z'].unique()):
if numberx + modex not in modeloa['X'].unique() and numberx - modex not in modeloa['X'].unique():
modeloa = modeloa[modeloa['X'] != numberx]
print("This coordinate in X-axis is not in the center of the block: " + str(numberx))
if numbery + modey not in modeloa['Y'].unique() and numbery - modey not in modeloa['Y'].unique():
modeloa = modeloa[modeloa['Y'] != numbery]
print("This coordinate in Y-axis is not in the center of the block: " + str(numbery))
if numberz + modez not in modeloa['Z'].unique() and numberz - modez not in modeloa['Z'].unique():
modelob = modeloa[modeloa['Z'] != numberz]
print("This coordinate in Z-axis is not in the center of the block: " + str(numberz))
文件。
我想使用Poetry导入__init__.py
文件,以便我可以第一次加载依赖项。我浏览了诗歌的文档,但是还没有找到一种方法。你能帮我吗?
我知道我可以手动添加所有软件包,但是我希望有一个自动化的过程,因为有很多软件包...
答案 0 :(得分:12)
poetry
不直接支持此功能。但是,如果您有一个手工制作的所需软件包列表(最多没有任何版本号),则仅包含主要依赖项,而不包含依赖项的依赖项,您可以这样做:
$ cat requirements.txt|xargs poetry add
答案 1 :(得分:3)
我没有足够的声誉来发表评论,但是对@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
然后,当诗歌运行时,这将产生错误,但是,它将继续越过-r base.txt
行并按预期安装软件包。
在Linux manjaro上进行测试,并按照here的指示安装了诗歌。
答案 2 :(得分:1)
我找到的最好的方法是这个:
$ for item in $(cat requirements.txt); do poetry add "${item}"; done
答案 3 :(得分:0)
一个班轮:
cat requirements.txt | grep -E '^[^# ]' | cut -d= -f1 | xargs -n 1 echo poetry add
答案 4 :(得分:0)
我很高兴这可能会有些晚,但是您可以使用
poetry add `cat requirements.txt`
答案 5 :(得分:0)
只需使用普通的requirements.txt并使用awk过滤掉版本号:
awk -F '==' '{print $1}' requirements.txt | xargs -n1 poetry add
-F
指定过滤器或分割点。 $ 1是拆分中的第一个参数。输入文件作为最后一个参数。之后,您可以使用poetry add
将其通过管道传递到xargs -n 1
,以连续每一行而不是一次用空格分隔的字符串来调用poetry add
。如果您想一次使用所有条目,只需省略-n 1
。还要确保诗歌环境已经存在。
答案 6 :(得分:0)
对于 Powershell:
$reqs = @(cat requirements.txt)
for($i = 0; $i -lt $reqs.length; $i++){poetry add $reqs[i]}
请注意,这不会忽略需求文件中的注释或任何其他内容。这严格将其视为原始文本,因此它期望每一行都是一个包。
答案 7 :(得分:-1)
这与诗歌相反
poetry export -f requirements.txt --without-hashes > requirements.txt