instalar - python3 install requirements txt
Instale un paquete y escriba en requirements.txt con pip (3)
Escribí la siguiente función bash que uso;
function pip-save() {
for pkg in $@; do
pip install "$pkg" && {
name="$(pip show "$pkg" | grep Name: | awk ''{print $2}'')";
version="$(pip show "$pkg" | grep Version: | awk ''{print $2}'')";
echo "${name}==${version}" >> requirements.txt;
}
done
}
Esto guarda el nombre del paquete canónico en los requisitos, así como la versión instalada. Ejemplo de uso;
$ pip-save channels asgi_redis
# will save the following to requirements.txt (as of writing):
# ---
# channels==1.0.1
# asgi-redis==1.0.0
# ---
# note how asgi_redis is translated to its canonical name `asgi-redis`
Estoy buscando una forma de instalar un paquete con pip, y escribir la información de la versión de ese paquete en el archivo requirements.txt de mi proyecto. Para aquellos familiarizados con npm , es esencialmente lo que npm install --save
.
Utilizar pip freeze > requirements.txt
funciona muy bien, pero he descubierto que me olvidé de ejecutar esto, o puedo incluir accidentalmente paquetes no utilizados que había instalado para probar pero que decidí no usar.
Entonces el siguiente psuedocode:
$ pip install nose2 --save
Daría como resultado un archivo requirements.txt con:
nose2==0.4.7
Supongo que podría pagar la salida de guardar para tomar los números de la versión, pero espero que haya una manera más fácil.
Para obtener la información de la versión, puedes usar la congelación de pip de manera selectiva después de la instalación. Aquí hay una función que debe hacer lo que está pidiendo:
pip_install_save() {
package_name=$1
requirements_file=$2
if [[ -z $requirements_file ]]
then
requirements_file=''./requirements.txt''
fi
pip install $package_name && pip freeze | grep -i $package_name >> $requirements_file
}
Tenga en cuenta el comando -i al grep. Pip no distingue entre mayúsculas y minúsculas con los nombres de los paquetes, por lo que probablemente querrás eso.
Solo agrega smth como
function pips() {
echo $''/n''$1 >> requirements.txt; pip install $1
}
en su .bashrc o .bash_profile y use el comando pips para instalar el paquete y guardarlo en el ejemplo de requirements.txt:
pips django-waffle
basado en el comentario de Akash Kothawale :)