이미 들여 쓰기 된 Python 코드 / 전체 함수 및 클래스를 IPython에 복사하고 싶습니다. 들여 쓰기를 시도 할 때마다 다음과 같은 오류 메시지가 나타납니다.
IndentationError: unindent does not match any outer indentation level (<ipython-input-23-354f8c8be51b>, line 12)
If you want to paste code into IPython, try the %paste and %cpaste magic functions.
답변
IPython에 직접 복사 할 수 없습니다. 단계는 다음과 같습니다.
- IPython에 복사하려는 줄을 클립 보드에 복사합니다.
%paste
IPython에 들어가십시오- 엔터 키를 치시오
- 이익!
답변
단계에 대한 설명 :
-
먼저 대상 라인을 클립 보드에 복사합니다.
-
iPython 프롬프트에 다음을 입력합니다.
- Tkinter의 경우 : 다음을 입력하십시오.
%paste
- 그렇지 않으면 : 입력
%cpaste
- Tkinter의 경우 : 다음을 입력하십시오.
-
붙여 넣기 (Ctrl-V)하고 Enter 키를 누릅니다.
-
그런 다음 입력
--
하고 Enter 키를 누르십시오.
예를 들면 :
In [1]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:for l in "Hello World":
: print l,
:--
H e l l o W o r l d
답변
현재 Ipython 5 당신이 어떤 마법의 명령을하지 않아도, 그냥 붙여 넣기
덕분에
prompt_toolkit
,IPython
지금 지원
- 입력 할 때 구문 강조
- 실제 여러 줄 편집 (위쪽 및 아래쪽 화살표 키가 줄 사이에서 이동)
- 들여 쓰기를 중단하거나 코드를 즉시 실행하지 않고 여러 줄 붙여 넣기
- 더 나은 코드 완성 인터페이스 (더 개선 할 계획) 선택적 마우스 지원
여기에서 더 자세히
ipython
최신 버전으로 업그레이드하려면
pip install ipython --upgrade
답변
%paste
필요합니다 Tkinter
. 우분투에있는 경우 다음을 통해 설치할 수 있습니다.
sudo apt-get install python-tk
Python3을 사용하는 경우
sudo apt-get install python3-tk
그런 다음 ipython을 다시 시작하고 사용 %paste
하여 클립 보드에서 붙여 넣습니다.
답변
유용한 답변 중 하나가 주석에서 손실되었으므로 다른 유용한 IPython 매직 기능에 대한 참조를 추가하면서 다시 설명하고 싶었습니다.
먼저 @EOL이 말한 것을 다시 말하면 OP의 문제를 해결하는 한 가지 방법은 먼저 실행 %autoindent
하고 붙여 넣기를 수행하여 자동 들여 쓰기를 끄는 것 %paste
입니다 (물론을 사용하는 경우에는 필요하지 않음 ).
이제 여기에 이미있는 것에 더 많은 정보를 추가하기 위해 IPython의 또 다른 유용한 모드는 %doctest_mode
문서 문자열에서 예제 붙여 넣기 및 테스트 스 니펫을 복사 할 수 있도록하는 것입니다. 이것은 또한 프롬프트 문자열을 먼저 제거하지 않고도 문서 및 온라인 포럼에서 찾을 수있는 대화 형 파이썬 세션 출력을 실행하는 데 유용합니다.
답변
Python 3을 사용하는 우분투 사용자의 경우.
는 python-tk
파이썬 2입니다.
%paste
Python 3에서 작업 하려면 python3-tk
패키지를 설치하십시오 .
sudo apt-get install python3-tk