Idle-python2.7의 패키지가 잘못되었나요?

Idle-python2.7의 패키지가 잘못되었나요?

Ubuntu 13.10에서 Python 2.7을 실행 중인데 유휴(idle-python2.7)가 작동을 멈췄습니다. 편집기 창에서 파일을 열려고 할 때마다 파일이 존재하고 비어 있거나 비어 있지는 않지만 비어 있습니다. 또한 터미널 kill 명령을 통하는 경우를 제외하고는 이후 유휴 상태를 닫을 수 없습니다.

  • 이전에는 유휴 상태가 잘 작동했습니다. Idlex, 각종 scipy 모듈, mpmath 등 여러 가지를 설치하고 나서 문제가 나타났는데, 여러 가지 방법으로 복구해 본 결과 우분투 공식 Idle 패키지 때문인 것으로 보입니다.

유휴 상태에서 파일을 열려고 하면 터미널에 다음 오류가 발생합니다.

Exception in Tkinter callback
[...lines ommitted for brevity...]
File "/usr/lib/python2.7/idlelib/IOBinding.py", line 129, in coding_spec
    for line in lst:
NameError: global name 'lst' is not defined

코드를 보면 명백한 버그처럼 보입니다. 실제로 lst는 함수에 정의되어 있지 않습니다 coding_spec. 또한 소스 파일 IOBinding.pyhttp://fossies.org/dox/Python-2.7.5/IOBinding_8py_source.html다르며 문제가 표시되지 않습니다.

최근 패키지 중 하나가 어떻게든 파일을 덮어썼다고 생각하여 시냅틱에서 모든 Python 패키지를 다시 설치하는 것을 포함하여 여러 가지를 시도했지만 잘못된 IOBinding.py가 여전히 존재합니다. 문제가 패키지 자체에 있다고 생각하는 이유는 내가 마침내 sudo apt-get remove idle패키지를 확인했기 때문입니다.유휴 라이브러리디렉토리가 비어 있었고 sudo apt-get install idle; 그런데 잘못된 IOBinding.py 파일이 다시 나타났습니다.

실제로 코드에서 간단히 lstby 로 대체하여 유휴 작업을 다시 수행할 수 있지만 나에게는 이는 분명히 안 되는 일입니다. str다른 파일이 잘못되었을 수 있으므로 소스 Python 배포판에서 해당 파일만 교체하려는 것도 마음에 들지 않습니다. 공식 패키지에서 올바른 파일을 얻고 싶습니다.

답변1

해결책이 없는 '나도 마찬가지'다.

...구체적인 오류를 검색하기 전까지는 말이죠.

파일 편집

/usr/lib/python2.7/idlelib/IOBinding.py

coding_spec 함수에서 다음 줄을 바꾸세요.

str = str.split("\n", 2)[:2]

와 함께:

lst = str.split("\n", 2)[:2]

http://ubuntuforums.org/showthread.php?t=2182753

관련 정보