2014-12-12 3 views
0

Я пытаюсь ответить в this.Импорт __init__

__init__.py файл в папку с именем MyLibs содержит:

LogFile = r'D:\temp' 

В utils.py в той же папке MyLibs, я пробовал различные способы доступа к LogFile переменной:

from __init__ import * 
print LogFile  #Gives: NameError: name 'LogFile' is not defined`: 

и:

import __init__ 
print MyLibs.LogFile #Gives: NameError: name 'MyLibs' is not defined 

У меня есть ошибки при выполнении from MyLibs.utils import *

Какое исправление я должен сделать? Я предпочитаю метод, когда я могу ссылаться на LogFile непосредственно, не добавляя префиксы пространства имен.

+2

'__init __. Py' является * инициализатором пакета * и обычно не импортируется напрямую. Почему вы не импортируете сам MyLibl' *? –

+0

Этот другой вопрос дает вам плохие советы. Я ответил на принятый ответ. –

+0

Извините, моя ошибка. Я обнаружил, что обновленный __init__.py не был вызван. Мне нужно было начать новую сессию Python, чтобы она работала. Ложная сигнализация. –

ответ

1

Моя ошибка.

Обновленный __init__.py был каким-то образом не выполнен. Я начал новую сессию Python, и она сработала.

Извините за ложную тревогу.

+1

upvote для ложной тревоги. :) – Netro

0

Не знаю, как сделать это с помощью неявного относительно импорта 2.7, но вы можете попробовать это:

from __future__ import absolute_import 
from . import LogFile 

Если вы используете модуль Python напрямую, вам нужно запустить его с python -m MyLibs.utils, а не python MyLibs/utils.py.

Смежные вопросы