#python
Вопрос:
Я сделал пакет, который должен импортировать другие пакеты, такие как pandas и numpy. Вот основная структура dir:
main.py
my_pkg/
__init__.py
test.py
test.py содержит что-то вроде этого (я ничего не импортирую)
def function():
foo=pd.read_csv(....)
Я пытался сделать это в main.py:
import pandas as pd
import numpy as np
from my_pkg import test
test.function()
Но я получаю эту ошибку:
NameError: name 'pd' is not defined
Как мне импортировать панд и numpy, чтобы test.function()
их можно было использовать?
Комментарии:
1. Вы пробовали импортировать эти модули в модуль, который их использует, т. е.
test.py
?2.
main.py
не использует панд или numpy, поэтому эти импортные данные бесполезны.
Ответ №1:
Поскольку вы импортируете панд в main.py это выходит за рамки функции function
.
Вы должны импортировать панд в test.py сам по себе, чтобы функция могла его использовать.
Ответ №2:
- Рекомендуется импортировать соответствующие библиотеки/пакеты в файл, в котором они в основном используются.[ но
from my_pkg.test import function
добавляетfunction
в область текущей переменной.] - Определите все библиотеки/пакеты, необходимые для запуска ваших библиотек, в
setup.py
файле подinstall_requires
ключом. Не включайте библиотеки/пакеты, специально используемые для тестирования и сборки.