3

Ubuntu 10.10 で Python 2.6.6 を実行しています。

モジュールをインポートして、そのモジュールを別の名前にバインドできることを理解しています。

import spam as eggs

また、

from eggs import spam as foo

私の問題は、PySide の例を実行しているときに、次のインポート コードが実行されないことです。

import PySide as PyQt4
from PyQt4 import QtCore, QtGui

インポート エラーが発生します。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named PyQt4

明らかに、Python インタープリターによると、上記のコードは正しくありません。私の質問は、なぜそれが正しくないのか、またはなぜこれが機能しないのかということです。

4

2 に答える 2

4

importfromは特別な構文です。

sys.pathそれらは、モジュール名で始まるファイルを意味するモジュール名を探します。

また、PyQt4 がインストールされていないように見えるため、失敗します。

PyQt4実行後に名前空間で呼び出される変数があるという事実は、何も変更しません。Python は、実行時にimport PySide as PyQt4呼び出される実際のモジュールをまだ探しています。PyQt4from PyQt4 import QtCore, QtGui

やってみる

import PySide as PyQt4
QtCore = PyQt4.QtCore
QtGui = PyQt4.QtGui

また

import PySide as PyQt4
from PySide import QtCore, QtGui

それは同等でなければなりません。

于 2011-02-24T01:26:36.503 に答える
2

PySide をインストールしたばかりで、すべての例で PyQt4 を使用するチュートリアルを行っていました。インポートを PyQt4 から PySide に変更するのにうんざりしたので、次の手順を使用して、サイト パッケージにシンボリック リンクを作成しました。

1)確かにもっと良い方法がありますが、シェルを開いてpythonを実行し、インタラクティブなインタープリターで次のように入力して、pythonパッケージがインストールされた場所を見つけました。

>>> import sys

>>> print sys.path

2)次に、ディレクトリの1つでPySideを見つけて、それにcdしました(nb /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packagesにある場合) Mac OSX Leopard 10.5.8 で python 2.7 用の macports PySide インストールを使用している場合)。

3) 次に、ln でシンボリック リンクを作成しました。私の場合は、sudo を使用する必要がありました。

sudo ln -s PySide PyQt4

それだけです。今は次のように使用できます。

from PyQt4 import QtGui

いつものように - 幸せな日々!

明らかに、PyQt4 をインストールしたい場合は、最初に PyQt4 シンボリック リンクを rm する必要があります。もう 1 つの注意点: 上記で説明したことは、多くの点で間違っているか悪い可能性があります。私は Python のインストールの専門家ではありませんが、今のところ問題ありません。YMMVなので自己責任でご利用ください。うまくいけば、誰かがすぐに「いいえ、非常に悪い」とコメントしてくれることを願っています。または理想的には、「ええ、汗をかかないでください、私たちはクールです..」

于 2011-06-04T12:16:07.423 に答える