2011-02-24 9 views
3

저는 Ubuntu 10.10에서 Python 2.6.6을 실행하고 있습니다.Python : 가져 오기 오류

모듈을 가져 와서 해당 모듈을 다른 이름으로 바인딩 할 수 있음을 이해합니다. 또한

import spam as eggs 

,

from eggs import spam as foo 

내 문제입니다 PySide examples를 실행할 때, 다음과 같은 수입 코드가 실행되지 않습니다 :

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 

분명히, 파이썬 인터프리터에 따르면 위의 코드는 올바르지 않습니다. 제 질문은 왜 그것이 잘못 되었습니까? 아니면 오히려 왜 작동하지 않는 것입니까?

답변

4

importfrom은 특별한 구문입니다.

모듈 이름으로 시작하는 sys.path의 파일을 의미합니다.

그리고 PyQt4가 설치되지 않았으므로 실패 할 것입니다.

당신은 아무것도 변경되지 않습니다 import PySide as PyQt4를 실행 한 후 네임 스페이스에 PyQt4라는 변수가, 파이썬은 여전히 ​​from PyQt4 import QtCore, QtGui을 수행 할 때 PyQt4라는 실제 모듈을 찾고 있다는 사실.

시도

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

또는 동일해야

import PySide as PyQt4 
from PySide import QtCore, QtGui 

을하고.

+0

고마워, 너는 맞아. 실제 모듈 인 PyQt4 맞아. 내가 더 잘 알았음에도 불구하고 그것은 내 마음을 넘지 않았다. PySide 개발자가 왜 그런 식으로 수입 명세서를 작성하기로 결정했는지 궁금합니다. 어쨌든, 고마워. –

+0

어쩌면 그들은'PyQt4'에 대한 예제를 개발했거나'PyQt4' 프로젝트에서 데모를 복사했을 수도 있습니다. http://gitorious.org/pyside-examples/pyside-examples/blobs/master/examples/demos/README에서 살펴보십시오. 그것은 모두'PyQt4'를 의미합니다. – Mikel

2

방금 ​​PySide를 설치했고 모든 예제에서 PyQt4를 사용한 튜토리얼을 진행했습니다. PyQt4에서 PySide로 가져 오기를 변경하는 것에 지쳐서 다음 단계를 사용하여 사이트 패키지에 심볼릭 링크를 만들었습니다.

1) 확실하게 더 나은 방법이 있지만 파이썬 패키지가 설치된 곳을 발견했습니다. 쉘 실행 파이썬은 다음 대화 형 인터프리터에서 입력 :

>>> import sys 

>>> print sys.path 

2) 나는 다음 디렉토리 중 하나에 PySide를 발견하고 (여기에 cd'd 그것은 선택 /에서의 NB/지역/라이브러리/프레임 워크/Mac OSX Leopard 10.5.8에서 python 2.7 용 macports PySide 설치를 사용하는 경우 Python.framework/Versions/2.7/lib/python2.7/site-packages). 지금은 그냥 사용할 수 있습니다, 그것을이다

sudo ln -s PySide PyQt4 

:

3) 그럼 난 LN와 심볼릭 링크를 만들어, 내 경우에는 내가 sudo를 사용했다

from PyQt4 import QtGui 

정상적으로을 - 행복 일!

분명히 PyQt4를 설치하려면 PyQt4 심볼릭 링크를 먼저 설치해야합니다. 또 다른 경고 : 위에서 설명한 내용은 여러면에서 잘못되었거나 나쁠 수도 있습니다. 파이썬 설치시 전문가가 아니지만 지금까지는 괜찮습니다. YMMV는 귀하의 책임하에 사용하십시오. 바라건대 누군가 "곧 나쁘다!"라고 말하게 될 것입니다. 또는 이상적으로 "예, 땀을 흘리지 마라. 우리는 식어 라."