python - 单元测试失败,无法找到全局模块
问题描述
从我的项目的根目录,我正在运行标准的 python 单元测试命令。
python3 -m unittest
我最终得到
doc = yaml.safe_load(f)
NameError: name 'yaml' is not defined
这是测试代码的蓝图:
import unittest
import yaml
from validators.utils import get_settings_key
# from validators.validators import validate_assumed_role
class TestValidators(unittest.TestCase):
def setUp(self):
with open("boilerplate_aws.yaml") as f:
self.doc = yaml.safe_load(f)
self.infrastructure = self.doc["parameters"]["infrastructure"]
self.inventory_role = self.infrastructure["assumed_role_arn"]
def test_role_validator(self):
settings_role = get_settings_key("assumed_role_arn")
# self.assertTrue(validate_assumed_role(self.inventory_role, settings_role))
#
if __name__ == '__main__':
unittest.main()
我认为 yaml 模块是 Python 中默认出现的全局模块。只是想知道我是否遗漏了什么,或者是一些项目结构混乱?只是为了安全检查,我查了一下包裹,它在本地。这是在 Ubuntu 下。没有venvs,或类似的东西。
谢谢。
解决方案
尝试运行以下命令:
sudo easy_install pip
sudo python -m pip install pyyaml
如果这不起作用,请尝试安装这样的特定版本:
pip install pyyaml==X.XX
在这个 github问题上找到了这些可能的解决方案。