No tengo suficiente reputación para comentar, pero una mejora a la respuesta de @Liang es omitir el echo y llamar directamente a poetry.
cat requirements.txt | grep -E '^[^# ]' | cut -d= -f1 | xargs -n 1 poetry add
En mi caso, esto añadió correctamente los paquetes al archivo pyproject.toml
.
Para referencia este es un fragmento de mi archivo 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
y al llamar cat requirements.txt | grep -E '^[^# ]' | cut -d= -f1
(nota la omisión de xargs -n 1 poetry add
para la demostración) imprimirá lo siguiente:
pytz
python-slugify
Pillow
# NOTA: esto instalará el paquete más reciente - puede que sí o que no lo desees.
Agregar dependencias de desarrollo es tan simple como agregar el argumento -D
o --dev
.
# Ejemplo de dependencias de desarrollo
cat requirements-dev.txt | grep -E '^[^# ]' | cut -d= -f1 | xargs -n 1 poetry add -D
Por último, si tus requerimientos de desarrollo se instalan desde un archivo de requerimientos principal, por ejemplo:
-r base.txt
paquete1
paquete2
Entonces esto generará errores cuando poetry se ejecute, sin embargo, continuará más allá de la línea -r base.txt
e instalará los paquetes como se espera.
Probado en Linux manjaro con poetry instalado como se indica aquí.