尽管有sys.path.append()或设置了PYTHONPATH,Azure DevOps管道-Python-ModuleNotFoundError

时间:2019-02-03 19:58:29

标签: python azure-devops pythonpath

我正在尝试为我的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中测试代码,所以首先我将存储库复制到位:

- 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中的错误?

2 个答案:

答案 0 :(得分:0)

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

现在,我将在主模块旁边复制测试脚本,如果一切顺利,则在构建应用程序之前将其删除。

答案 1 :(得分:0)

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

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