【问题标题】:Building Python packages for a Raspberry Pi using Azure Pipelines使用 Azure Pipelines 为 Raspberry Pi 构建 Python 包
【发布时间】:2020-03-30 14:53:59
【问题描述】:

我为 Python 包设置了两个管道。一个用于 Windows,另一个用于 Linux。 Windows 的一个按预期工作。但是,如果我将 Linux 可执行文件复制到 Raspberry,它将无法运行。如果我双击它,什么都不会发生,如果我使用终端执行它,我会被拒绝。如果我在我的 Raspberry 上本地构建 Python 包,一切都会按预期工作。

所以基本上我的问题是,我是否需要专门针对 Linux ARM 来让我的 Python 应用程序在我的 Raspberry 上运行?如果是这样,我怎样才能做到这一点?在创建 Pipeline 时,我只能在 x86 和 x64 架构之间进行选择:

repo 可以在here找到。

这是我用于构建和发布的管道:

trigger:
- master

jobs:

- job: 'Raspberry'
  pool:
    name: arm32 # Already tried to use a self-hosted build agent, but didn't get it to work
  variables:
    python.version: '3.7'

  steps:
    - task: UsePythonVersion@0
      inputs:
        versionSpec: '$(python.version)'

    - script: |
        cd AzurePipelinesWithPython
        python -m pip install --upgrade pip
      displayName: 'Install dependencies'

    - script: pip install pyinstaller
      name: 'pyinstaller'

    - script: cd AzurePipelinesWithPython && pyinstaller --onefile --noconfirm --clean test.py
      name: 'build'

    - task: PublishBuildArtifacts@1
      inputs:
        pathtoPublish: './AzurePipelinesWithPython/dist/'
        artifactName: 'AzurePipelinesWithPython-raspi-$(python.version)'

很抱歉无法发布 Azure DevOps 存储库,它属于我们的企业订阅,不公开。

【问题讨论】:

  • 嗨,你能分享一个简单的python项目和更多关于你如何创建exe的细节(任务)。使用 pyinstaller 之类的东西?我们需要更多细节来重现该问题。
  • 好的,我添加了构建管道和示例 repo。

标签: python arm azure-pipelines


【解决方案1】:

所以基本上我的问题是,我是否需要专门针对 Linux ARM 让我的 Python 应用程序在我的 Raspberry 上运行?

不,您无需将其指定为针对您的应用的 ARM。特别是,我认为即使您删除该任务也不会产生太大影响。如果你使用hosted agent,它默认包含不同的python版本。如果你使用自托管代理,你只需要确保在本地机器上安装了合适的版本。

但是,如果我将 Linux 可执行文件复制到 Raspberry,它将无法运行。 如果我双击它,什么也不会发生,如果我使用 终端,我的权限被拒绝。

对于您遇到的奇怪行为,我想这不是 Azure Devops 方面的结果。我搜索并发现了几个与您类似的问题,请参阅onetwothreefour

所以我认为这更像是Linux环境中的一个常见问题,在使用chmod u+x file_name授予文件运行权限后尝试使用终端执行该程序。此外,如果问题仍然存在,您可以使用file xx.exe 检查是否为 Linux 正确生成了 exe。希望以上所有内容都能为解决您的问题提供正确的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-25
    • 2021-04-16
    • 2015-11-14
    • 2015-07-29
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    相关资源
    最近更新 更多