programing

Python 쉘에 탭 완료를 추가하려면 어떻게 해야 합니까?

starjava 2023. 8. 25. 23:11
반응형

Python 쉘에 탭 완료를 추가하려면 어떻게 해야 합니까?

다음을 사용하여 django 응용 프로그램을 시작할 때python manage.py shell대화형 콘솔 셸을 사용합니다. 탭 완료 등을 사용할 수 있습니다.

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 앱 없이 대화형 콘솔을 시작하기 위해 제가 무엇을 해야 하는지 알려주실 수 있나요?

제가 방법을 찾은 것 같아요.

.pythonrc 파일 생성

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

그런 다음 .vmsrc 파일에 추가합니다.

export PYTHONSTARTUP=~/.pythonrc

효과가 있을 것 같습니다.

저는 장고가 https://docs.python.org/library/rlcompleter.html 같은 것을 한다고 생각합니다.

만약 당신이 정말로 좋은 대화형 통역사를 갖고 싶다면 아이피톤을 보세요.

참고로, 이 내용은 튜토리얼 http://docs.python.org/tutorial/interactive.html 에서 다룹니다.

나는 ptpython을 사용합니다 - 그것은 훌륭한 도구 자동 완성 셸 cmd입니다.

ptpython을 설치하는 것은 매우 쉽습니다, pip 도구를 사용하세요.

pip install ptpython

그리고 장고 쉘은 장고 env를 수입해야 합니다, 이렇게.

import os

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

저를 믿으세요, 이것이 당신을 위한 최선의 방법입니다.

Windows 10 셸용 수정:

pip install pyreadline3  # previously, pyreadline but that package was abandoned
pip install ipython

python3는 바로 사용할 수 있는 것처럼 보입니다!

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

가져오기 오류가 해결되었습니다.또한 Python repl에서 생성/변경 없이 탭을 완료할 수 있습니다..pythonrc그리고..bashrc.

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

fernanr@gnuruwi ~ $ python3.6
Python 3.6.3 (default, Apr 10 2019, 14:37:36)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.
Display all 318 possibilities? (y or 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.st

이전 버전(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                 

언급URL : https://stackoverflow.com/questions/246725/how-do-i-add-tab-completion-to-the-python-shell

반응형