2016-12-11 5 views
1

PytitからQtWidgetsを正常にインポートできましたが、これはコードでうまく動作しますが、呼び出しで完全なQtWidgets名を使用しないとエラーが発生します。以下には...インポートされたモジュールですがまだフルネームを使用する必要があります

import sys 
from PyQt5 import QtWidgets 

app = QtWidgets.QApplication(sys.argv) 

に動作しますけれども行う場合...

import sys 
from PyQt5 import QtWidgets 

app = QApplication(sys.argv) 

私が手...

NameError:名 'はQApplicationは'

+0

あなたはPyQt5インポートQtWidgets'から 'QtWidgets.whatever'を使用せずに物事を参照するためにあなたを有効にする必要があります'と思われる場合は、あなたがドン」 Pythonのインポートの仕組みを理解しています。 [チュートリアル](https://docs.python.org/3/tutorial/modules.html#packages)をご覧ください。 – BrenBarn

+0

何が問題だと思われますか?どちらの例でも、Pythonが現在認識している唯一のnamspaceであるため、 'QtWidgets'が必要です。 'PyQt5.QtWidgetsからインポートQApplication'を使用したい場合は –

+0

これはインポートの問題を解決していますが、今は取得していますQtプラットフォームのプラグイン" windows "が見つかりませんでしたのでこのアプリケーションを起動できませんでした "" – DreamerNo56

答えて

5

あなたのmisどのようにPython import文が動作するかを理解する。 Pythonでモジュールをインポートする場合、直接インポートされたモジュールだけがローカルシンボルテーブルにインクルードされます。

したがって、名前を直接インポートしていない場合は、現在の名前空間でスタンドアロンの識別子として使用することはできません。あなたは、この動作をしたい場合は、直接QtWidgets名前空間からQApplication名をインポートします。

from PyQt5.QtWidgets import QApplication 
0

インポートモジュールのように定義されていません。この:

import sys 
from PyQt5.QtWidgets import * 

app = QApplication(sys.argv) 
+2

いいえ、ワイルドカードのインポートは使用しないでください。より複雑なプロジェクトでは、輸入の起源を辿るのが難しくなります。 –

+0

@KlausD。理解している.. – Bodhi94

関連する問題