Python 셸에 탭 완성을 어떻게 추가합니까?


125

를 사용하여 django 애플리케이션을 시작할 때 python manage.py shellInteractiveConsole 셸이 나타납니다. 탭 완성 등을 사용할 수 있습니다.

Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)

를 사용하여 파이썬 인터프리터를 시작하면 python탭 완성 기능을 제공하지 않습니다.

누군가가 나에게 대화 형 콘솔을 제공하기 위해 django가 무엇을하고 있는지, 또는 django 앱없이 대화 형 콘솔을 시작하기 위해 무엇을해야하는지 말해 줄 수 있습니까?


1
파이썬을 입력하면 >>> 프롬프트가 나타납니다. 이것이 바로 대화 형 쉘입니다. 질문이 뭐야?
S.Lott

4
탭 완성 기능을 제공하지 않습니다. 그게 문제 야.
ashchristopher

이를 지정하려면 질문을 업데이트하십시오.
Daryl Spitzer

답변:


210

나는 그것을 할 방법을 찾았을 것입니다.

.pythonrc 파일 만들기

# ~/.pythonrc
# enable syntax completion
try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

그런 다음 .bashrc 파일에서

export PYTHONSTARTUP=~/.pythonrc

작동하는 것 같습니다.


2
이것은 현재 IPython 및 bpython을 사용할 수없는 Jython에서 작동합니다.
Skylar Saveland

1
어떤 이유로, 위의 내용은 "마운틴 라이온"이있는 이전 Mac에서는 작동했지만 "el captan"이있는 새 Mac에서는 작동하지 않았습니다. 나는 필요 source ~/.bashrc파이썬 인터프리터를 시작하기 전에 작동 할 때마다. 팁이 있습니까?
hi15

1
@hmi은 통일 시도 당신 .bashrc.bash_profile이 페이지의 하단에 제안 : joshstaiger.org/archives/2005/07/bash_profile_vs.html 또한 그들 사이의 차이에 대한 정보를 제공합니다. 문제가 해결되지 않을 수도 있지만 도움이 될 수 있습니다.
Dangercrow

@hmi /etc/bashrc대신 ~/.bashrc.
음성

참고로-StackOverflow에서 다른 어떤 것보다이 답변에 더 많이 돌아 왔을 것이므로 감사합니다.
timmins



10

나는 ptpython을 사용합니다. https://github.com/jonathanslenders/ptpython/

ptpython은 훌륭한 도구 자동 완성 쉘 cmd입니다. ptpython을 설치하는 것은 매우 쉽습니다.

pip 설치 ptpython

그리고 django 쉘의 경우 다음과 같이 django env를 가져와야합니다.

수입 OS

os.environ.setdefault ( "DJANGO_SETTINGS_MODULE", "testweb.settings")

저를 믿으세요, 이것이 당신에게 가장 좋은 방법입니다 !!!


5

windows10 셸 수정 :

  • pip 설치 pyreadline
  • pip install ipython [쉘]


1

Python3에서이 기능은 기본적으로 활성화되어 있습니다. 내 시스템에 모듈이 없습니다.readline 설치 . 나는 만자로에 있습니다. 다른 리눅스 배포판 (초등학교, 우분투, 민트)에서는이 탭 완성 문제가 발생하지 않았습니다.

pip모듈을 설치 한 후 가져 오는 동안 다음 오류가 발생했습니다.

ImportError: libncursesw.so.5: cannot open shared object file: No such file or directory

이 문제를 해결하기 위해

cd /usr/lib ln -s libncursesw.so libncursesw.so.5

가져 오기 오류가 해결되었습니다. 그리고, 그것은 또한의 생성 / 변경없이 파이썬 REPL에서 탭 완성을 가져 .pythonrc.bashrc.


0

예. 3.6에 내장되어 있습니다.

fernanr @ gnuruwi ~ $ python3.6 Python 3.6.3 (기본값, 2019 년 4 월 10 일, 14:37:36) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux Type "help", "copyright 자세한 내용은 ","크레딧 "또는"라이선스 "를 참조하십시오.

OS OS를 가져옵니다. 318 개의 가능성을 모두 표시 하시겠습니까? (y 또는 n) os.CLD_CONTINUED os.O_RDONLY os.ST_NOEXEC os.environ os.getpid (os.readlink (os.spawnvpe (os.CLD_DUMPED os.O_RDWR os.ST_NOSUID os.environb os.getppid (os.readv (os) .성


-1

이전 버전 (2.x)의 경우 위의 스크립트는 매력처럼 작동합니다. :)

fernanr@crsatx4 ~ $ cat .bashrc | grep -i python
#Tab completion for python shell
export PYTHONSTARTUP=~/.pythonrc
fernanr@crsatx4 ~ $ . ~/.bashrc
fernanr@crsatx4 ~ $ echo $?
0
fernanr@crsatx4 ~ $ python2
Python 2.7.5 (default, Jun 11 2019, 14:33:56)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.
Display all 249 possibilities? (y or n)
os.EX_CANTCREAT             os.O_WRONLY                 

답장에 "~ / .pythonrc"의 내용이 누락 된 것 같습니다
MadMike
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.