【问题标题】:Azure DevOps Pipelines - Python - ModuleNotFoundError despite sys.path.append() or setting PYTHONPATHAzure DevOps Pipelines - Python - ModuleNotFoundError 尽管 sys.path.append() 或设置 PYTHONPATH
【发布时间】:2019-06-27 15:39:56
【问题描述】:

我正在尝试为我的 python 应用程序运行一些测试,但我无法正确设置路径以便我的test.py 可以找到它。

我的应用程序结构如下:

repo/src/main/python/main_module
repo/tests/test.py

我的test.py 看起来像这样:

import sys

sys.path.append(os.path.normpath('C:/repo/src/main/python'))
import main_module

现在我想在 Azure Pipelines 中测试代码,所以首先我将 repo 复制到位:

- powershell: |
    cd C:/
    mkdir repo
    cp -r -v $(src.repo)/* C:/repo/
  condition: eq( variables['Agent.OS'], 'Windows_NT' )

之后我使用tree 来测试是否所有内容都被正确复制。

然后我只需调用以下命令运行测试脚本:

python C:/repo/tests/test.py

但这给了我一个ModuleNotFoundError

我也尝试通过 PYTHONPATH 设置我的main_module 的路径,但这也不起作用。

是我错过了他们的东西还是 Azure Pipelines 中的错误?

【问题讨论】:

  • 您的main_module 目录是否包含__init__.py 文件?
  • 是的。在我的本地机器上一切正常。
  • 你能在远程机器上做python C:/repo/src/main/python/main_module/__init__.py吗?
  • 是的,效果很好
  • 你能发布你得到的确切回溯吗?

标签: python azure-devops pythonpath


【解决方案1】:

在与 Azure DevOps 支持人员交谈后,我现在知道我的问题目前是 DevOps-Pipelines 中的一个错误。

现在我将复制我的测试脚本到我的主模块旁边,如果一切都成功并且在构建应用程序之前删除它们。

【讨论】:

  • 您可以提供的任何进一步信息(来自支持或问题链接的通信),我看到我的 PYTHONPATH 导出在本地工作时被忽略,这是一年多之后
  • 我遇到了类似的问题。是否有该错误的票证链接?
  • 这里有什么更新吗?遇到同样的问题。
【解决方案2】:

为了在 Linux 环境中使用 Azure 管道执行 python 脚本,我使用了 'script:'

script: pythonpath=/repo/src/main/python python3 repo/tests/test.py 
displayName: 'execute script python' 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-12
    • 2021-02-08
    • 1970-01-01
    • 2021-01-15
    • 2020-01-14
    • 1970-01-01
    • 2021-03-14
    相关资源
    最近更新 更多