在Python中,ModuleNotFoundError。没有名为'yaml'的模块,如果我们在没有安装包的情况下试图导入''模块,就会发生错误。pyyaml'模块,或者没有在正确的环境中安装该模块,就会发生ModuleNotFoundError: No module named 'yaml' 错误。
在本教程中,让我们看看如何在不同的操作系统中正确安装pyyaml模块,并解决 ModuleNotFoundError问题。没有名为 "yaml "的模块的错误。
什么是ModuleNotFoundError。没有名为'yaml'的模块?
我们得到ModuleNotFoundError的原因有很多。没有名为'yaml'的模块的错误
- 试图在没有安装pyyaml 包的情况下使用该模块。
- 如果IDE设置的Python/Python解释器的版本不正确。
- 你正在使用虚拟环境,而pyyaml模块没有安装在虚拟环境里面
- 在与当前使用的Python不同的版本中安装pyyaml包。
- 将一个变量名声明为模块名(pyyaml)
如何解决ModuleNotFoundError。没有名为'yaml'的模块?
pyyaml不是Python中的内置模块(它不在默认的python安装中出现);你需要使用pip安装程序明确安装它,然后使用它。
YAML 是一种数据序列化格式,是为人类可读性和与脚本语言的交互而设计的。PyYAML是一个用于Python的YAML解析器和发射器。
PyYAML具有完整的YAML 1.1解析器,支持Unicode,支持pickle,能够扩展API,以及合理的错误信息。PyYAML支持标准的YAML标签,并提供了Python特定的标签,允许代表一个任意的Python对象。
我们可以通过安装 'pyyaml'模块,在终端/Shell中运行 **pip install pyyaml** 命令来解决这个问题。
我们可以通过在终端/Shell中运行以下命令来验证该软件包是否正确安装。
这将提供所安装软件包的详细信息,包括版本号、许可证和它的安装路径。如果该模块没有安装,你将在终端中得到一个警告信息,说明WARNING: Package(s) not found: pyyaml.
pip show pyyaml
输出
Name: PyYAML
Version: 6.0
Summary: YAML parser and emitter for Python
Home-page: https://pyyaml.org/
Author: Kirill Simonov
Author-email: xi@resolvent.net
License: MIT
Location: c:\personal\ijs\python_samples\venv\lib\site-packages
Requires:
Required-by: Naked
解决方案1 - 以正确的方式安装和使用pyyaml模块
根据你所运行的Python版本和操作系统,运行相关命令来安装 pyyaml 模块。
# If you are using Python 2 (Windows)
pip install pyyaml
# if you are using Python 3 (Windows)
pip3 install pyyaml
# If the pip is not set as environment varibale PATH
python -m pip install pyyaml
# If you are using Python 2 (Linux)
sudo pip install pyyaml
# if you are using Python 3 (Linux)
sudo pip3 install pyyaml
# In case if you have to easy_install
sudo easy_install -U pyyaml
# On Centos
yum install pyyaml
# On Ubuntu
sudo apt-get install pyyaml
# If you are installing it in Anaconda
conda install -c conda-forge pyyaml
一旦你安装了pyyaml模块,我们现在就可以在我们的代码中导入它并使用它,如下所示。
import yaml
with open('config.yml', 'r') as file:
config = yaml.safe_load(file)
print(config)
输出
version: 2.1
# Define the jobs we want to run for this project
jobs:
build:
docker:
- image: cimg/<language>:<version TAG>
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
steps:
- checkout
- run: echo "this is the build job"
# Orchestrate our job run sequence
workflows:
build_and_test:
jobs:
- build
- test:
requires:
- build
解决方案2--验证IDE是否被设置为使用正确的Python版本
如果你在安装软件包后仍然得到同样的错误,你可以验证你使用的IDE是否配置了正确的Python解释器版本。
例如:在Visual Studio Code的情况下,我们可以通过以下方式设置Python版本 CTRL + Shift + P或 (⌘ + Shift + P 在Mac上)来打开命令调色板。
一旦命令调色板打开,选择Python解释器并选择正确的Python版本和虚拟环境(如果已配置),如下所示。
Python 解释器
解决方案3 - 在虚拟环境中安装pyyaml
许多不同的IDE,如Jupyter Notebook、Spyder、Anaconda或PyCharm,经常安装他们自己的Python 虚拟环境,以保持事情的干净,并与你的全局Python分开。
如果你正在使用**VS Code,**那么你也可以创建一个虚拟环境,如下图所示。
在虚拟环境的情况下,你需要确保pyyaml模块需要安装在虚拟环境里面,而不是全局。
步骤1: 创建一个虚拟环境。如果你已经创建了一个虚拟环境,那么继续进行第2步。
第2步:激活虚拟环境
第3步:使用以下命令安装所需的模块 pip install 命令来安装所需的模块。
# Create a virtual Environment
py -3 -m venv venv
# Activate the virtual environment (windows command)
venv\Scripts\activate.bat
# Activate the virtual environment (windows powershell)
venv\Scripts\Activate.ps1
# Activate the virtual environment (Linux)
source venv/bin/activate
# Install pyyaml inside the virtual environment
pip install pyyaml
解决方案4 - 确保模块名称不被声明为变量名称。
最后但并非最不重要的是,你可能需要交叉检查并确保你没有声明一个与模块名称相同的变量。
你应该检查你是否没有把任何文件命名为 yaml.py因为它可能会影响原始 pyyaml模块。
如果问题仍未解决,你可以尝试删除软件包并再次安装,重新启动IDE,并检查路径以确保软件包安装在正确的环境路径和Python版本中。
总结
ModuleNotFoundError:没有名为'yaml'的模块'的错误发生在我们试图导入pyyaml'模块,或者你没有在正确的环境中安装该模块。
我们可以通过运行以下命令安装pyyaml模块来解决这个问题 pip install pyyaml命令来解决这个问题。另外,在你使用任何虚拟环境的情况下,确保该模块安装在正确的环境中,并且在你运行代码的IDE中适当地设置了Python版本。
