Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“如何修复”;没有名为';四元数'&引用;用Python?_Python_Visual Studio_Import_Module_Quaternions - Fatal编程技术网

“如何修复”;没有名为';四元数'&引用;用Python?

“如何修复”;没有名为';四元数'&引用;用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.

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

要在我的计算机上安装四元数模块,我使用命令提示符并键入:

康达激活基地

四元数

当我在VisualStudio代码中运行我的代码时,我是通过基地中的终端来运行它的

以下是脚本顶部的所有导入内容:

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环境修复了这一问题。