2012-08-02 4 views
11

프로그래머로서 우리는 우리가 쓰는 것 이상을 읽었습니다. 필자는 "큰"파이썬 패키지를 사용하는 회사에서 일하기 시작했습니다. 패키지 또는 KLOC가 높은 패키지 패밀리가 포함됩니다. 사건의 요지 : Zope.큰 파이썬 코드베이스 탐색이 더 빠릅니다.

내 문제는이 코드베이스를 빠르고 쉽게 탐색하는 데 어려움이 있다는 것입니다. 나의 현재 전략은

  • 나는 내가 그 수입에 대한 소스 코드에 의해입니다 이상
  • 내가 알아 알 필요가 가져 오기를 누르
  • /이해 내가 변경해야 모듈을 읽기 시작이다 임포트 후에 파이썬 디버그 (pdb) 문을 배치하고 모듈을 반향합니다. 소스 파일이
  • 입니다. 쉘 또는 Vim 파일 탐색기에서 탐색합니다.
  • 또는

"내 접시에"10KLOC을 모듈 자체가 더 모듈을 수입하고 내가 그것을 알기도 전에 내가있어 대부분의 시간 : 나는 내가 필요로하는 방법/클래스를 참조하십시오

  • 더 많은 것을 알고 싶습니다
  • 전체 코드베이스에서 해당 메소드/클래스의 정의를 검색합니다 (코드베이스가 부분적으로 ~/.buildout-eggs이기 때문에 고통이 될 수 있음)
  • 그 메소드를 정의하는 코드를 하나 이상 찾습니다./나는 그들 중 하나가 내가

이 큰 코드베이스에 대한 이해가 많은 시간, 비용을 읽을 필요 하나 인 추론이 클래스

  • . 하지만 을 탐색하다가 크고 알 수없는 파이썬 코드베이스 인은 일반적인 문제입니다.

    그래서이 문제에 대한 기술적 도구 또는 전략적 솔루션을 찾고 있습니다. ...

    난 그냥 수 없습니다 위에서 설명한 전략을 사용하여 하드 코어 파이썬 프로그래머를 상상해보십시오.

  • +1

    https://github.com/mkomitee/vim-gf-python을 관심, 이상 할 수있다 간단히 말해서 : http://vim.wikia.com/wiki/Automatically_add_Python_paths_to_Vim_path –

    +0

    하하, "첫 번째 세계 문제"... 우리가 C 언어로 프로젝트에서이 작업을 수행 할 수 있다면 (일반적으로 원시 머신 코드 당신의 차입니다) KLOC는 아마 100K에 가까울 것이며, Exuberant Ctags에 대해서는 –

    답변

    8

    Vim에서 NERDTree (파일 브라우저) 및 태그 목록을 좋아합니다.(: 시간 CTRL-]) : - 정력 (소스 코드 브라우저>http://www.vim.org/scripts/script.php?script_id=273)도

    빔에, 당신은 정의로 이동 CTRL-] 사용할 수

    1. 다운로드 무성한 ctags를 http://ctags.sourceforge.net/
    2. 설치 경로를 따라 가서 소스 코드의 '루트'디렉토리에있는
    3. 의 쉘에 태그 파일을 만드십시오. "ctags -R"
    4. (noautochdir을 설정했는지 확인하십시오. pwd가 root 디렉토리 인 것을 확인하십시오. 톰 3 단계)
    5. 는 빔으로 이동, 일부 기능 또는 클래스 이름 위에 커서는 태그에 대한 다수의 일치가 있다면, 그것은 사방을 보여줍니다이 가져온, 어디서, 기본적으로 CTRL-]

    충돌 태그가 하나의 일치, 그것은 즉시로 이동 한 경우는

    을 선언했다

    ... 그러면 나는 (당신이

    을 어디에서 앞뒤로 이동하려면 Ctrl 키 + O Ctrl 키 + 사용 Parti의 소스 코드에 대해 위의 단계를 반복하십시오. cular 라이브러리는 내가 보통

    +2

    +1입니다. 원래의 "IDE"는'vi'와'ctags' 였고'vim'은'vi'보다 더 좋았고 Exuberant Ctags는 원래'ctags'보다 더 좋았습니다. – steveha

    +0

    'ctags -R'는'-R' 옵션없이'ctags'의 버전과 함께 제공되는 OSX에서는 작동하지 않을 수 있습니다. http://stackoverflow.com/questions/8996387/am-i-even-using-exuberant-ctags를 참조하십시오. – nofinator

    5

    나는 ipython 's를 사용합니까 ?? 명령

    원하는 것을 가져 오는 방법을 알아 내고 추가 하시겠습니까? 소스 코드를 보려면 모듈 또는 클래스 또는 함수 또는 메소드 이름의 끝으로 이동하십시오. 그리고 명령 완성은 긴 이름도 알아내는 데 도움이됩니다.

    -1

    하는 빨간 약을보십시오) 재료를 연구하는 개방형 별도의 빔 창을 계속 사용 https://github.com/klen/python-mode

    +1

    이것은 나쁜 대답입니다. 그것은 1) 링크 된 답변 2) 포스터 자신의 프로젝트에 3) 죽었습니다. –

    +0

    업데이트 :이 링크는 죽어 있지 않습니다. 파이썬 모드에 관해 많은 좋은 점을 들었다. 나는 그것을 며칠 동안 사용해 왔고 정말 좋아했습니다. –