我有以下内容,可以在刚刚创建的环境Env_Name中安装来自requirements.txt的包

- 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'

显示程序包确实显示程序包已安装:

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

但查看env文件夹,我只能在Site-Packages中看到:

enter image description here

正如我们所看到的,我们没有来自Requirements s.txt的包.所以问题是:

所有这些包都安装在哪里?有没有脚本可以用来显示它们所在的文件夹的路径?

我如何在Env_Name中安装它们?

推荐答案

所有这些包都安装在哪里?有没有脚本可以用来显示它们所在的文件夹的路径?

在Azure DevOps中,python包将安装到默认的系统路径.

我们可以使用以下脚本获取系统路径:

python -m site

判断sys.path值并找到site-packages路径.

或者,您可以使用以下命令获取目标程序包安装路径:

pip show packagename

例如:

enter image description here

如何将它们安装到Env_Name中?

要在env_name中安装包,可以添加参数:--target="Env_Name/lib/site-packages"

下面是一个例子:

- 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'

....

Result:

enter image description here

Python相关问答推荐

在内部列表上滚动窗口

更改matplotlib彩色条的字体并勾选标签?

将整组数组拆分为最小值与最大值之和的子数组

Python中的嵌套Ruby哈希

用合并列替换现有列并重命名

Python键入协议默认值

如何在给定的条件下使numpy数组的计算速度最快?

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

如何让这个星型模式在Python中只使用一个for循环?

将JSON对象转换为Dataframe

当递归函数的返回值未绑定到变量时,非局部变量不更新:

提高算法效率的策略?

Flask运行时无法在Python中打印到控制台

Pandas—堆栈多索引头,但不包括第一列

如何根据rame中的列值分别分组值

根据Pandas中带条件的两个列的值创建新列

PySpark:如何最有效地读取不同列位置的多个CSV文件

如果列包含空值,则PANAS查询不起作用

将Pandas DataFrame中的列名的长文本打断/换行为_STRING输出?

运行从Airflow包导入的python文件,需要airflow实例?