如何在 Python 中修复 "No module named 'quaternion'"?

How to fix "No module named 'quaternion'" in Python?

我正在尝试将模块四元数导入到我的代码中,以便能够旋转我的传感器数据。我不断收到错误消息,“没有名为 'quaternion' 的模块”。

为了将四元数模块安装到我的计算机上,我使用了命令提示符并键入了

> conda activate base
> pip install quaternion

当我运行

import quaternion

这是输出:

(base) C:\Users\erapp\Code>C:/Users/erapp/Anaconda3/python.exe c:/Users/erapp/Code/mbl_mc10/code/sensor_prep_utils.py
Traceback (most recent call last):
  File "c:/Users/erapp/Code/mbl_mc10/code/sensor_prep_utils.py", line 1, in <module>
    import quaternion
ModuleNotFoundError: No module named 'quaternion'

如有任何帮助,我们将不胜感激。

您应该通过安装 quaternion 的 conda 包(可从 conda-forge 获得)和 conda install -c conda-forge quaternion

来解决这个问题

在您的情况下,您似乎没有使用 conda 环境中的 pip,这导致在该环境之外安装软件包。 (用 which pip 测试)

如果您有兴趣,这里有一些 guidelines on using pip with conda, and future evolutions 两者之间的互操作性。

不幸的是——出于其维护者无法控制的原因——这个包在 pypi 上的名称(pip 获取它的包的地方)与它在 conda-forge 上或导入时的名称不同:它被称为 numpy-quaternion.正如 FabienP 所建议的,最简单的方法确实是使用 conda。但如果你坚持使用pip,你只需要按照说明操作即可:

python -m pip install numpy-quaternion