2011-08-21 5 views
2

내가이 오류를 내가의 PyDev를 사용하여 이클립스에서 파이썬 파일을 실행할 때마다지고있어 이후 :ImportError를 : 나쁜 매직 넘버, OSX 라이온

Traceback (most recent call last): 
    File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/site.py", line 73, in <module> 
__boot() 
    File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/site.py", line 2, in __boot 
    import sys, imp, os, os.path 
ImportError: Bad magic number in /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/os.pyc 

을 내가 파이썬 2.6를 사용하고 있습니다. 파이썬을 터미널 (2.7 또는 2.6)에서 실행할 때이 문제가 발생하지 않습니다. 마지막으로 작업 한 이후로 변경된 유일한 사실은 Snow Leopard의 OSX Lion에 대한 업데이트입니다.

이와 비슷한 토론은 원래 .pyc 파일을 사용했던 것 사이의 일종의 불일치 때문에 .pyc 파일을 제거하는 방법을 제안하는 것처럼 보입니다. (나는 마법의 숫자가 무엇인지 잘 모릅니다.)). 그러나 Frameworks 디렉토리에서 os.pyc를 삭제한다는 생각에 조금주의를 기울였습니다. 유일한 다른 파일이 os.pyo 파일 인 경우 (차이점이 무엇인지 모르는 경우) os.py가 아닌 파일입니다.

모든 OSX Lion 업데이트, Eclipse 업데이트 및 PyDev 업데이트를 설치했습니다.

을이 문제 같은 경우에도 코드를 발생

if __name__ == '__main__': 
    pass 

어떤 도움이 해결을 주시면 감사하겠습니다!

+0

스노우 레오파드 (Snow Leopard) -> 마운틴 라이온 (Mountain Lion) 업데이트를 수행했을 때 완전히 동일한 문제가 발생했습니다. 이 문제를 해결할 수 있었습니까? – kiminoa

답변

1

예. * .py 파일에서 모든 * .pyc * .pyo 파일을 다시 생성해야합니다.

어떻게 수행 할 것인가는 처음 생성 된 방법에 따라 다릅니다. 일부 리눅스 배포판에서와 같이 파이썬 패키지 (및 추가 기능)는 자체 이익을 위해 너무 영리 해지고 원래 * .py 파일을 다른 곳에 보관하고 * .py 파일을 생성하고 배치하기위한 자체 빌드 시스템을 갖습니다. .pyc 및/또는 * .pyo 파일. 그런 경우 빌드 시스템을 사용하여 원래 * .py 파일에서 다시 생성해야합니다.

참고 : 여기에 * .pyo 파일에 couplelinks이 있습니다. 컴파일 된 파이썬 모듈의 최적화 된 버전입니다.

0

OS X Lion에는 os.py 파일이 있어야합니다. 이것은 아마도 오류의 근본 원인 일 수 있습니다. os.pyc 파일은 지금 실행중인 것과 다른 버전의 파이썬에서 생성되었습니다. 일반적으로 파이썬 인터프리터는 단지 파일을 os.py에서 재생성한다고 상상합니다. 그러나 어떤 이유로 든 시스템에 해당 파일이 없습니다.

이 문제는 더 큰 일련의 문제에서 작은 데이터 요소로 간주되며 일반적으로 운영 체제를 다시 설치하는 것이 좋습니다. 비교를 위해

, 내가 10.7.1를 실행하는거야, 나는 다음과 같습니다 여담으로

[2:23pm][[email protected] workout] ls /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/os.* 
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/os.py 
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/os.pyc 
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/os.pyo 

, 파이썬 바이트 코드의 *지며 .pyo 파일이 최적화 된 버전.

2

Python을 2.7.1로 업그레이드하면 Python 디렉토리에있는 "셸 프로파일 업데이트"명령 파일을 실행하고 새로운 설치에 따라 Netbeans의 Python 설정을 변경하는 작업이 효과적입니다.