programing

파이썬 인터프리터 셸에서 마지막 명령을 반복하는 방법은 무엇입니까?

cafebook 2023. 7. 17. 21:24
반응형

파이썬 인터프리터 셸에서 마지막 명령을 반복하는 방법은 무엇입니까?

마지막 명령을 반복하려면 어떻게 해야 합니까?일반 키:Up, Ctrl+Up, Alt-p가 작동하지 않습니다.그들은 말도 안 되는 캐릭터들을 만들어냅니다.

(ve)[kakarukeys@localhost ve]$ python
Python 2.6.6 (r266:84292, Nov 15 2010, 21:48:32) 
[GCC 4.4.4 20100630 (Red Hat 4.4.4-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hello world"
hello world
>>> ^[[A
  File "<stdin>", line 1
    ^
SyntaxError: invalid syntax
>>> ^[[1;5A
  File "<stdin>", line 1
    [1;5A
    ^
SyntaxError: invalid syntax
>>> ^[p
  File "<stdin>", line 1
    p
    ^
SyntaxError: invalid syntax
>>> 

IDLE에서 Options(옵션) -> Configure IDLE(IDLE 구성) -> Keys(키)로 이동한 후 history-next(다음) 및 history-previous(이전)를 선택하여 키를 변경합니다.

그런 다음 선택할 새 키 가져오기를 클릭하면 원하는 키 조합을 선택할 수 있습니다.

다음을 사용하여 파이썬 셸에서 히스토리를 활성화합니다.

이것은 나의 .python startup 파일입니다. PYONSTARTUP 환경변수가 이 파일 경로로 설정되어 있습니다.

# python startup file 
import readline 
import rlcompleter 
import atexit 
import os 
# tab completion 
readline.parse_and_bind('tab: complete') 
# history file 
histfile = os.path.join(os.environ['HOME'], '.pythonhistory') 
try: 
    readline.read_history_file(histfile) 
except IOError: 
    pass 
atexit.register(readline.write_history_file, histfile) 
del os, histfile, readline, rlcompleter

이를 활성화하려면 모듈을 줄로 읽으십시오. rlcompleter.

이에 대한 정보는 http://docs.python.org/using/cmdline.html#envvar-PYTHONSTARTUP 에서 확인할 수 있습니다.

필요한 모듈:

  1. http://docs.python.org/library/readline.html
  2. http://docs.python.org/library/rlcompleter.html

histroy의 이전 명령에 대한 Alt + p, histroy의 다음 명령에 대한 Alt + n.

이것은 기본 구성이며, 옵션 -> IDLE 구성에서 원하는 대로 이러한 키 바로 가기를 변경할 수 있습니다.

어떤 환경인지 지정하지 않았습니다.IDLE을 사용한다고 가정합니다.

IDLE 설명서에서:명령 기록:

Alt-p retrieves previous command matching what you have typed.
Alt-n retrieves next.
      (These are Control-p, Control-n on the Mac)
Return while cursor is on a previous command retrieves that command.
Expand word is also useful to reduce typing.

Ubuntu Server 12.04에서 소스(Python 3.4)에서 Python 버전을 설치한 후 이 문제가 발생했습니다.

여기 댓글 중 일부는 Ipython 설치를 권장하고 있으며, 저는 Ipython에서도 동일한 동작을 하고 있음을 언급하고 싶습니다.제가 볼 때, 이것은 읽기 선의 문제입니다.

12서버의 Ubuntu 12.04를 설치해야 .libncurses-dev그리고.libreadline-dev그런 다음 소스에서 Python을 설치하여 업 히스토리(읽기 줄) 동작을 사용하도록 설정합니다.저는 거의 이렇게 했습니다.

sudo apt-get install libncurses-dev libreadline-dev

그 후 이전에 설치한 파이썬(소스에서 설치한 시스템 파이썬이 아님!)을 삭제하고 소스에서 다시 설치했더니 모든 것이 예상대로 작동했습니다.

저는 pip 또는 편집 .python startup으로 아무것도 설치할 필요가 없었습니다.

Ctrl+p는 위쪽 화살표의 일반적인 대안입니다.Python 빌드에서 gnu readline을 사용하도록 설정했는지 확인합니다.

Alt + p는 Windows의 Inthough Python에서 사용할 수 있습니다.

기본적으로 이전 명령에 대해 ALT+p를 사용하면 IDLE GUI >>> OPTIONS >> IDLE 구성 >> 키 >> 사용자 지정 키 바인딩에서 대신 Up-Arrow로 변경할 수 있습니다. 읽기 줄 모듈은 Windows에서 실행되지 않으며 사용자 지정 스크립트를 제외하고는 사용자 지정 스크립트를 실행할 필요가 없습니다.도움이 되길 바랍니다.:)

CentOS에서, 저는 이것을 다음과 같이 고칩니다.

yum install readline-devel

그런 다음 파이썬 3.4를 다시 컴파일합니다.

OpenSUSE에서는 다음과 같이 수정합니다.

pip3 install readline

이 답변을 참조하십시오: https://stackoverflow.com/a/26356378/2817654 .아마도 "pip3 설치 리드라인"이 일반적인 솔루션일 것입니다.내 센트를 입어본 적이 없습니다.OS.

아래에 복사한 정보를 확인합니다. 질문에 답하십시오.

IDLE에 적응합니다.이전 명령을 되돌리기 위해 위쪽 화살표를 누르는 대신 반복할 이전 명령에 커서를 놓고 "입력"을 누르면 현재 명령 프롬프트에서 해당 명령이 반복됩니다.Enter 키를 다시 누르면 명령이 실행됩니다.

IDLE을 강제로 사용자에게 적용:IDLE 명령 프롬프트 창의 화살표 키가 다른 모든 명령 프롬프트의 화살표 키처럼 작동하도록 하려면 이 작업을 수행할 수 있습니다."옵션" 메뉴로 이동하여 "IDLE 구성"을 선택한 다음 "키"를 선택합니다.이전 명령 및 "다음 명령" 작업과 관련된 키를 각각 위쪽 화살표 및 아래쪽 화살표로 변경합니다.

원천

my macos python3에서 다음을 사용할 수 있습니다: control+p early command controllo+n next command

alt+p  
go into options tab
configure idle
Keys

밑을 history-previous명령의 경우, 여기서 한 번 더 좋아하는 것으로 변경할 수 있습니다.

이 실할때수있다니습할발을 할 때 할 수 .python script.pyvs justpython읽기 줄을 사용할 수 없는 다른 이유 중 하나로 대화형 셸에 들어갑니다.

시도:

import readline

OSX(최소한 매버릭스)에 대한 Pyfunc의 답변과 같은 사용자 지정 스크립트가 필요하지 않습니다.유휴 -> 환경설정 -> 키를 클릭한 후 "history-next" 및 "history-previous"를 찾아 기본 키보드 단축키를 그대로 두거나 일반적인 예상 터미널 동작에 따라 "위쪽 화살표" 및 "아래쪽 화살표"를 지정합니다.

이것은 OSX 매버릭스의 Idle 2.7 버전입니다.

Jessie를 Jessie를 합니다.2.7.9

sudo apt-get install libncurses5-dev libncursesw5-dev

나의 다른 하나를 고치기 위해3.5.2pyenv로 설치한 설치:

pip install readline

출처:

[1] https://www.cyberciti.biz/faq/linux-install-ncurses-library-headers-on-debian-ubuntu-centos-fedora/

[2] https://github.com/yyuu/pyenv/issues/240

[3] https://stackoverflow.com/a/40229934/332788

화살표 키를 사용하여 명령의 시작으로 이동하고 Enter 키를 누르면 명령이 현재 명령으로 복사됩니다.

그런 다음 Enter 키를 눌러 다시 실행합니다.

python에서 마지막 명령을 반복하려면 다음을 사용할 수 있습니다.<Alt + n>창밖에

저는 이것에 대해 왜 그렇게 긴 설명이 있는지 이해할 수 없습니다.다음을 사용하여 pyreadline 패키지를 설치하기만 하면 됩니다.

pip install pyreadline

sudo  port install py-readline (on Mac)

(PIP를 이미 설치했다고 가정합니다.)

아이피톤이 항상 그런 것은 아닙니다.나는 그것을 꽤 좋아하지만, 만약 당신이 ipython과 함께 Django shell을 실행하려고 한다면.>>와 같은 것.

ipython manage.py shell

virtualenv를 사용하면 제대로 작동하지 않습니다.Django는 기본 시스템 파이썬을 시작하지만 가상은 시작하지 않기 때문에 ipython을 시작할 때 없는 몇 가지 특별한 포함이 필요합니다.

위쪽 화살표는 Python 명령줄에서만 작동합니다.

IDLE(Python GUI)에서 기본값은 다음과 같습니다. Alt-p : 입력한 내용과 일치하는 이전 명령을 검색합니다.Alt-n : 다음을 검색합니다...예를 들어 Python 2.7.9에서는 다음을 선택하는 작업 키를 보거나 변경할 수 있습니다.옵션 -> IDLE 구성 -> (탭) 키

python 3.5용 아나콘다의 경우 설치해야 했습니다.ncurses

conda install ncurses

그 후에ncursesinstall tab complete, history 및 왼쪽 및 오른쪽 화살표를 통한 탐색이 대화형 셸에서 수행되었습니다.

Mac에서 Python 2.x 사용

➜ ~ brew install rlwrap

rlwrap으로 시작합니다.

➜ ~ rlwrap python

위쪽 화살표는 저도 사용할 수 있습니다.그리고 명령줄에 내장된 python용 Readline 모듈을 설치할 필요는 없다고 생각합니다.당신은 아이피톤을 확인해봐야 합니다.아니면 키보드 지도의 문제일 수도 있습니다.

MacOSX를 사용하는 경우 다음을 누릅니다.control p자전거를 타고 올라가다control n주기적으로 감소합니다.IDLE Python 3.4.1 Shell을 사용하고 있습니다.

python 3.4 IDEL의 Macos에서 control + p입니다.

Ubuntu 16.04에서 소스 코드에서 Python을 사전 로드된 3.5에서 버전 3.7로 업그레이드한 후 동일한 문제가 발생했습니다.@erewok이 제안했듯이, 저는 했습니다.

sudo apt-get install libncurses-dev libreadline-dev

다음 순서:sudo make install그 후, 화살표 키가 작동했습니다.문제를 해결하는 데 어떤 모듈이 필요한지 또는 둘 다 필요한지 확실하지 않지만 "설치하기"가 없으면 아무 것도 작동하지 않습니다.처음 만드는 동안 일부 빨간색 플래그 오류가 있었지만 무시하고 빌드를 완료했습니다.이번에는 오류가 없었던 것 같습니다.

언급URL : https://stackoverflow.com/questions/4289937/how-to-repeat-last-command-in-python-interpreter-shell

반응형