импорт файлов в python - PullRequest
       15

импорт файлов в python

1 голос
/ 27 марта 2010

У меня есть такая файловая структура-

  1. Блог \ DataObjects \ User.py

  2. Блог \ index.py

Я хочу импортировать функцию (say_hello) в User.py из index.py. Я пытаюсь этот код -

from Blog.DataObjects.User import say_hello

say_hello()  

И у меня есть эта ошибка -

Traceback (most recent call last):
  File "index.py", line 1, in <module>
    from Blog.DataObjects import User
ImportError: No module named Blog.DataObjects

Ответы [ 2 ]

12 голосов
/ 27 марта 2010

Python ожидает в каждом каталоге, который должен быть импортирован, файл __init__.py, который может быть пустым. Итак, если вы исправите свою файловую структуру следующим образом:

Blog/__init__.py
Blog/index.py
Blog/DataObjects/User.py
Blog/DataObjects/__init__.py

это должно работать, если путь к каталогу находится в вашем пути Python (вы можете проверить это с помощью:

import sys
print sys.path

). Если нет, обратите внимание, что импорт выполняется относительно позиции текущего файла. То есть, поскольку index.py уже находится внутри Blog, импорт должен выглядеть так:

from DataObjects.User import say_hello
1 голос
/ 27 марта 2010
from DataObjects.User import say_hello
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...