Модуль "x" не имеет атрибута "y", создавая свой собственный модуль .py - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь создать свой собственный модуль (mi_modulo.py) и переместить туда все функции, которые я определил в своем скрипте Jupyter Notebook, чтобы он выглядел чище.

Однако, когда я пытаюсьчтобы использовать эти функции, которые я уже перенес в модуль, я не могу использовать их все, и я получаю следующее сообщение: модуль 'mi_modulo' не имеет атрибута 'train4_data_import'

Я установил Anaconda 3.0 и использую Python 3.7.0 через ноутбуки Jupyter.(Простите, если выражения звучат неловко, я немного знаю Python, но я не очень разбираюсь во всех деталях установки, программного обеспечения, IDE и т. Д.)

## mi_modulo.py ##

def train4_data_import(file_name):

    df = pandas.read_excel(file_name)

    force = df["Signal 1"].values[13:]
    acceleration1 = df["Signal 2"].values[13:]
    acceleration2 = df["Signal 3"].values[13:]

    return force, acceleration1, acceleration2

def hola_mundo():
    print("whatever")

## script ##

import pandas
import mi_modulo as mi

mi.hola_mundo()

mi.train4_data_import("Tren4.xlsx")

И вот что я получаю:(Я собирался показать изображение, но я не уверен, как это сделать с помощью этого нового стека формы стека overoverflow)

whatever

AttributeError                            Traceback (most recent call last)
<ipython-input-18-69a38929f7e6> in <module>()
      3 mi.hola_mundo()
      4 
----> 5 mi.train4_data_import()

AttributeError: module 'mi_modulo' has no attribute 'train4_data_import'

Я не понимаю, почему он может читать одну функцию, но не другую.

----------------------------- РЕДАКТИРОВАТЬ 1 ----------------------------

Выполнение того, что предлагает U9-Forward:

import pandas
from mi_modulo import *

hola_mundo()

train4_data_import("Tren4.xlsx")

Теперь я получаю следующую ошибку:

whatever


NameError                                 Traceback (most recent call last)
<ipython-input-25-e1885200beb7> in <module>()
      3 hola_mundo()
      4 
----> 5 train4_data_import("Tren4.xlsx")

NameError: name 'train4_data_import' is not defined

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

В jupyter-notebook иногда требуется перезапустить ядро, чтобы импортировать все несохраненные модули, которые у вас есть.Кроме того, вам необходимо импортировать все зависимости для пользовательского модуля в этом модуле.

0 голосов
/ 27 декабря 2018

Вероятно, это потому, что вы не нажали Ctrl + S или не нажали кнопку сохранения в файле, вероятно, это сработает, если вы сделаете это:

Ctrl + S

Или кнопка сохранения.

, затем запустите script.py и убедитесь, что он работает: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...