.yml no instala paquetes de .requirements.txt en el entorno dedicado
Tengo lo siguiente que debería instalar paquetes desde requirements.txt
el entorno Env_Name
que se acaba de crear
- script: |
python -m venv Env_Name
cd Env_Name
.\scripts\Activate
displayName: 'Create & Activate Env_Name '
- script: |
python -m pip install --upgrade pip
displayName: 'Install dependencies'
- script: |
pip install wheel
displayName: 'Wheel install'
- script: |
pip install python_ldap-3.4.0-cp311-cp311-win_amd64.whl
displayName: 'Install ldap from wheel'
- script: |
type requirements.txt
displayName: 'display the content of the requirements file'
- script: |
pip install -r requirements.txt -v
displayName: 'packages installation'
- script: |
pip list
displayName: 'Display packages'
- script: |
python setup.py sdist
displayName: 'Artifact creation'
- task: CopyFiles@2
inputs:
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'My_App'
publishLocation: 'Container'
mostrar paquetes muestra que los paquetes se han instalado:
pip list
========================== Starting Command Output ===========================
"C:\Windows\system32\cmd.exe" /D /E:ON /V:OFF /S /C "CALL "D:\a\_temp\f53d2436-67e2-4d6f-bf00-e90e1dfcb18c.cmd""
Package Version
-------------------- ------------
asgiref 3.7.2
beautifulsoup4 4.12.2
certifi 2023.7.22
cffi 1.15.1
charset-normalizer 3.2.0
contourpy 1.1.1
cryptography 41.0.3
cx_Oracle 8.3.0
cycler 0.11.0
Django 4.2.5
django-adminlte3 0.1.6
django-auth-ldap 4.6.0
django-mssql-backend 2.8.1
et-xmlfile 1.1.0
fonttools 4.42.1
idna 3.4
joblib 1.3.2
kiwisolver 1.4.5
lxml 4.9.3
pero al mirar la carpeta env solo puedo ver en los paquetes del sitio:
Como podemos ver, no hay paquetes de requisitos.txt. Entonces la pregunta es:
¿Dónde están instalados todos estos paquetes? ¿Existe algún script que pueda usarse para mostrar la ruta de la carpeta donde se encuentran?
¿ Cómo los instalo Env_Name
?
¿Dónde están instalados todos estos paquetes? ¿Existe algún script que pueda usarse para mostrar la ruta de la carpeta donde se encuentran?
En Azure DevOps, los paquetes de Python se instalarán en la ruta predeterminada del sistema.
Podemos usar el siguiente script para obtener la ruta del sistema:
python -m site
Verifique el valor de sys.path y busque la ruta de los paquetes del sitio .
O puede usar el comando para obtener la ruta de instalación del paquete de destino:
pip show packagename
Por ejemplo:
¿Cómo los instalo en Env_Name?
Para instalar los paquetes en Env_Name, puede agregar el argumento:--target="Env_Name/lib/site-packages"
Aquí hay un ejemplo:
- script: |
python -m venv Env_Name
cd Env_Name
.\scripts\Activate
displayName: 'Create & Activate Env_Name '
- script: |
python -m pip install --upgrade pip
displayName: 'Install dependencies'
- script: |
pip install wheel
displayName: 'Wheel install'
- script: |
pip install python_ldap-3.4.0-cp311-cp311-win_amd64.whl
displayName: 'Install ldap from wheel'
- script: |
type requirements.txt
displayName: 'display the content of the requirements file'
- script: |
pip install -r requirements.txt -v --target="Env_Name/lib/site-packages"
displayName: 'packages installation'
....
Resultado:
Cada script
bloque suele ejecutarse en un shell independiente y restablece el entorno entre scripts; instálelo requirements.txt
en el mismo script
bloque en el que crea y activa el entorno.