如何解决由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 举报,一经查实,本站将立刻删除。