Как исправить "Нет модуля с именем 'quaternion'" в Python? - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь импортировать кватернион модуля в мой код, чтобы иметь возможность вращать данные моего датчика.Я получаю сообщение об ошибке: «Нет модуля с именем« кватернион »».

Чтобы установить модуль кватерниона на свой компьютер, я использовал командную строку и набрал:

conda Activate Base

pip install quaternion

Когда я запускаю свой код в коде Visual Studio, я запускаю его через терминал в базе.

Вот все мои операции импорта в верхней части скрипта:

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'

Iдолжен быть в состоянии запустить скрипт, но я не знаю, в чем ошибка.Я чувствую, что мне нужно что-то изменить в импорте модуля.

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 25 мая 2019

Вы должны решить эту проблему, установив пакет conda для quaternion (доступно из conda-forge ) с conda install -c conda-forge quaternion

В вашем случае, похоже, вы не используетеpip из вашей среды conda, что приводит к установке пакета вне этой среды.(тест с which pip)

Если вам интересно, вот несколько рекомендаций по использованию pip с conda и будущих изменений по взаимодействиюмежду двумя.

...