#python #azure #devops #azcopy
Вопрос:
В настоящее время я запускаю скрипт python в конвейере Azure.
Скрипт python запускает подпроцесс.run([cmd], capture_output=True), а cmd-это команда azcopy в формате
$(Агент.Каталог инструментов)/azcopy/azcopy цель копирования источника{токен}
в настоящее время у меня установлена azcopy
- task: Bash@3
displayName: Install azcopy
inputs:
targetType: 'inline'
script: |
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
mkdir $(Agent.ToolsDirectory)/azcopy
wget -O $(Agent.ToolsDirectory)/azcopy/azcopy_v10.tar.gz https://aka.ms/downloadazcopy-v10-linux
tar -xf $(Agent.ToolsDirectory)/azcopy/azcopy_v10.tar.gz -C $(Agent.ToolsDirectory)/azcopy --strip-components=1
Затем у меня есть еще одна задача скрипта bash, которая запускает файл python, но я получаю сообщение об ошибке [Errno 2] Нет такого файла или каталога: ‘$(Агент.Каталог инструментов)/azcopy/azcopy’
$(Агент.Каталог инструментов)/azcopy/azcopy распознается, когда я запускаю его во встроенном скрипте, но не распознается, когда я запускаю команду через скрипт python.
Комментарии:
1. Есть какие-нибудь новости по этому вопросу? Решает ли это вашу проблему? Пожалуйста, дайте мне знать, если у вас есть какие-либо ответы.
Ответ №1:
По моему опыту, возможная причина в том, что скрипт python не может знать реальный путь, когда вы используете $(Agent.ToolsDirectory)/azcopy/azcopy
. Вы можете попытаться указать абсолютный путь без каких-либо переменных или задать переменные внутри скрипта python. Конечно, вам нужно убедиться, что все задачи выполняются в одном и том же агенте.