2014-01-24 5 views
1

Почему ни один из этих операторов не импортирует QtCore, QtGui, QtNetwork или какие-либо другие? Я так долго искал и не могу найти никого, кто мог бы ответить на такой простой вопрос. Или, по крайней мере, это то, что я думаю.import PyQt4 не включает PyQt4.QtCore или QtGui

import PyQt4 
from PyQt4 import * 

Вместо этого я должен сделать:

from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
from PyQt4.QtNetwork import * 

Плюс куча больше. Любые ярлыки, чтобы схватить их всех?

Редактировать: Мои решения заключались в том, чтобы пройти через библиотеки, которые я использовал (для Py2exe), и просто скопировать их импорт. Это сработало. Тем не менее, но не так утомительно.

+0

возможно дубликат [Почему из SciPy импорта пространственной работы, в то время как scipy.spatial не работает после импорта SciPy ?] (http://stackoverflow.com/questions/21071715/why-does-from-scipy-import-spatial-work-while-scipy-spatial-doesnt-work-after) – falsetru

+0

@falsetru Я не знаю, если его дубликат. Ответчик хочет знать, могут ли они импортировать * все * в пространстве имен PyQt4 в глобальное пространство имен. –

+0

@LegoStormtroopr, OP также спросил ** почему ** 'from pkg import *' не импортирует подпакеты. – falsetru

ответ

3

Если вы хотите импортировать все классы PyQt4 в единое пространство имен, вы можете сделать:

from PyQt4 import Qt 
3

Don't use import *, namespaces exist for a good reason.

Импорт модулей, которые необходимо, в модулях вам нужно их.

Этот код может потребоваться несколько дополнительных букв, но вы только знаете QUrl был модуль Qt по соглашению, не поручительство.

from PyQt import QtCore 
u = QtCore.QUrl 

Приведенных выше код означает, что, когда вы изучаете вторую линию, которую вы знаете, наверняка, что это объект Qt от конкретного модуля и ничего другого.

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