Трудно найти заголовок для этого вопроса, и, надеюсь, этот поток не является дубликатом.NameError - импортированные модули, когда скрипт разбит на несколько файлов python
Я написал этот длинный сценарий в Python 2.7 (используя PyCharm 2016.2.2) для проекта и решил разделить его на разные .py-файлы, которые я мог бы затем импортировать в основной файл.
К сожалению, кажется, что при импорте модуля (например, numpy) ранее в коде не означает, что файлы .py, импортированные ниже, будут знать об этом.
Я новичок в python, и мне было интересно, есть ли простой способ обхода этого.
Чтобы быть более ясным, вот пример структуры моего кода:
Main.py (файл, который используется для выполнения сценария):
import basic
numpy.random.seed(7)
import load_data
basic.py:
import pandas
import numpy
etc...
load_data.py:
raw_input = pandas.read_excel('April.xls', index_col = 'DateTime')
etc...
Вторая линия Main.py вызовет ошибку «NameError: название„NumPy“не определен», то есть NumPy, который был импортирован в basic.py не передается Main.py.
Я думаю, что аналогичная ошибка возникла бы для кода в load_data.py, так как «pandas» не было бы определенным именем.
Любые идеи?
Спасибо.
Естественно, я импортирую файлы python без расширения .py. –
Каждый модуль имеет собственное пространство имен. Импорт в одном модуле не делает его доступным для других. Вы должны импортировать в каждый файл, который использует 'numpy'. Идея является одним из * инкапсуляции *. https://en.wikipedia.org/wiki/Encapsulation_(computer_programming) – cdarke
@BobSmith не помещает '.py' в свой код и путает людей. – MattDMo