“如何修复”;没有名为';四元数'&引用;用Python?
我正在尝试将模块四元数导入到代码中,以便能够旋转传感器数据。我不断收到错误,“没有名为“四元数”的模块” 要在我的计算机上安装四元数模块,我使用命令提示符并键入: 康达激活基地 四元数 当我在VisualStudio代码中运行我的代码时,我是通过基地中的终端来运行它的 以下是脚本顶部的所有导入内容:“如何修复”;没有名为';四元数'&引用;用Python?,python,visual-studio,import,module,quaternions,Python,Visual Studio,Import,Module,Quaternions,我正在尝试将模块四元数导入到代码中,以便能够旋转传感器数据。我不断收到错误,“没有名为“四元数”的模块” 要在我的计算机上安装四元数模块,我使用命令提示符并键入: 康达激活基地 四元数 当我在VisualStudio代码中运行我的代码时,我是通过基地中的终端来运行它的 以下是脚本顶部的所有导入内容: import pandas as pd import numpy as np from scipy.signal import butter, filtfilt import matplotlib.
import pandas as pd
import numpy as np
from scipy.signal import butter, filtfilt
import matplotlib.pyplot as plt
import sys
import quaternion
sys.path.append('./') # noqa
sys.path.append('../') # noqa
这里是我尝试使用四元数模块的地方:
def align_data(df, leg):
if leg == 'left':
x_rot_quat = quaternion.from_euler_angles(np.pi, 0, 0)
if leg == 'right':
x_rot_quat = z_rot_quat = quaternion.from_euler_angles(0, 0, 0)
y_rot_quat = quaternion.from_euler_angles(0, 0, 0)
z_rot_quat = quaternion.from_euler_angles(0, 0, np.pi/2)
rot_quat = x_rot_quat*z_rot_quat*y_rot_quat
rot_quat = rot_quat.conj()
sensors = ['Accel', 'Gyro']
axes = ['X', 'Y', 'Z']
for sens in sensors:
if sens == 'Accel':
units = '(m/s^2)'
if sens == 'Gyro':
units = '(rad/s)'
col_list = []
for ax in axes:
col_list.append(' '.join([sens, ax, units]))
data = df.loc[:, col_list].values.copy()
data = quaternion.rotate_vectors(rot_quat, data, axis=1)
df.loc[:, col_list] = data
return df
当我尝试运行代码时,以下是输出:
C:\Users\erapp\Code>C:/Users/erapp/Anaconda3/Sc/Anaconda3/Scripts/activate
(base) C:\Users\erapp\Code>conda activate base
(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 6, in <module>
import quaternion
ModuleNotFoundError: No module named 'quaternion'
C:\Users\erapp\code>C:/Users/erapp/Anaconda3/Sc/Anaconda3/Scripts/activate
(基本)C:\Users\erapp\Code>conda激活基本
(基本)C:\Users\erapp\Code>C:/Users/erapp/Anaconda3/python.exe C:/Users/erapp/Code/mbl\u mc10/Code/sensor\u prep\u utils.py
回溯(最近一次呼叫最后一次):
文件“c:/Users/erapp/Code/mbl_mc10/Code/sensor_prep_utils.py”,第6行,在
导入四元数
ModuleNotFoundError:没有名为“四元数”的模块
我应该能够运行脚本,但我不知道是什么错误。我觉得我需要对导入模块进行一些更改
任何帮助都将不胜感激。您应该通过使用
conda安装-c conda forge quaternion安装四元数的conda软件包来解决此问题
在您的情况下,看起来您没有使用conda环境中的pip
,这会导致在该环境之外安装软件包。(使用哪个pip进行测试
)
如果您感兴趣,这里有一些关于将pip
与conda
一起使用,以及二者之间的互操作性的介绍。不幸的是,由于其维护人员无法控制的原因,此包在pypi上有不同的名称(这是pip获得其包的地方)与conda forge上或导入时相比:它被称为numpy四元数
。正如法比恩普所建议的,最简单的方法确实是使用康达。但如果您坚持使用pip,您只需按照说明操作即可:
pip安装numpy四元数
如果您安装了两个版本的python,那么就为其中一个安装pip安装库,并且您可能正在使用其他版本的python在visual studio中运行。或者另一件事可能是,conda activate base必须在安装模块四元数的地方启动自己的虚拟环境。我建议在系统范围内使用,如果您在其他平台上的linux或类似设备上,请在终端上安装pip模块。这就是我所做的,运行conda list
会产生quaternion 2019.7.23.15.26.49 py36hc8d92b1_0 conda forge
,但是当运行python
并要求导入四元数时,我确实得到了回溯(最近一次调用):文件“”,第1行,在ModuleNotFoundError:没有名为“四元数”的模块
,然后您应该尝试重新安装,或者您没有调用正确的python解释器。停用并重新激活conda环境修复了这一问题。