微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

由gitci调用时由于VTK导入错误导致Pytest失败,但直接调用时不会

如何解决由gitci调用时由于VTK导入错误导致Pytest失败,但直接调用时不会

我们有一台运行 gitlab runner 版本 13.4.1 的 Windows 10 机器。我们的 repo 已经配置了一个 gitlab-ci yml 文件,该文件构建了一个新的 conda 环境(包括 vtk 8.1.0 版),然后在该环境中运行 pytest 单元测试。

直到几天前,这还可以正常工作。最近我们所有的管道都收到了相同错误的某些版本:

ImportError while importing test module 'C:\path\to\test.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
C:\path\to\virtualenv\lib\site-packages\vtk\vtkCommonCore.py:5: in <module>
    from .vtkCommonCorePython import *
E   ImportError: DLL load Failed: The specified module Could not be found.

During handling of the above exception,another exception occurred:
C:\path\to\virtualenv\gitci-env\lib\importlib\__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:],package,level)
Tests\test.py:4: in <module>
    import vtk
C:\path\to\virtualenv\lib\site-packages\vtk\__init__.py:7: in <module>
    from .vtkCommonCore import *
C:\path\to\virtualenv\lib\site-packages\vtk\vtkCommonCore.py:9: in <module>
    from vtkCommonCorePython import *
E   ModuleNotFoundError: No module named 'vtkCommonCorePython'
=========================== short test summary info ===========================
ERROR Tests\test.py

其他值得注意的地方:

  • 如果在 powershell 中调用虚拟环境并且在那里运行单元测试,则不会发生此错误。它只能通过 gitlab-ci 管道进行复制。
  • 如果运行一个简单的 assert True 单元测试,它将通过 gitlab-ci。如果修改为import vtk,就会失败
  • 在服务器上创建命名环境并更新 yml 文件以使用该现有环境而不是创建新环境并不能解决该行为。
  • 机器重启没有解决问题

有人知道为什么会发生这种情况或如何解决吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。