2013-10-18 169 views
19

在python中,我可以使用help(<object>)獲得任何對象的基本文檔。但爲了能夠搜索的文檔,我必須去上網。如果我在某個無法訪問互聯網的地方,這並沒有什麼幫助。搜索python文檔脫機?

在R中,有一個方便的雙重問號特徵(??<topic>),它允許我搜索所有已安裝庫的文檔,以查找其名稱或文檔字符串中包含<topic>的任何功能。有沒有類似的蟒蛇?也許即使只是加載對象?

+0

什麼平臺/操作系統? – wwii

+0

@wii:我在linux上,但如果可能的話,跨平臺的答案會更可取。 – naught101

+2

請注意,http://stackoverflow.com/questions/723017指向http://docs.python.org/3/download.html這當然是有用的,但只包括核心python文檔。我感興趣的是搜索python core *和*所有已安裝模塊的文檔(或只是導入的文檔)。 – naught101

回答

15

查看文件夾中的python文件夾:Doc。這個文件夾有從python.org下載的python文檔的整個下載文檔。我知道這是一個非常晚的答案,但它帶來了一個簡單的解決方案。

+1

問題是關於*搜索*文檔。你的建議是什麼?我猜grep可能會工作,這取決於格式.. – naught101

+2

@ naught101那麼,有文件窗口中搜索的選項。正如我的回答所說,與網站上的文檔相同。 – AHuman

+0

你是對的,我當時錯過了。但是,它不包含像numpy這樣的第三方庫。他們有單獨的文檔可用,但你不能一次搜索整個生態系統...... – naught101

0

您應該嘗試ipython

object_name? will print all sorts of details about any object, including docstrings, function definition lines (for call arguments) and constructor details for classes.

魔術命令%PDOC,%PDEF,%的PSource和%PFILE將分別打印文檔字符串,函數定義行,完整的源代碼和任何對象的完整文件(當它們可以被找到)。如果automagic開啓(默認情況下),則不需要顯式鍵入'%'。

+0

對不起,但這與問題完全無關。我知道如何閱讀對象的文檔,並且我已經使用ipython。但是,這些都不允許我**搜索所有可用模塊或所有加載對象的文檔。 – naught101

2

Windows Idle - 從shell窗口或編輯窗口中獲取F1獲取所有文檔的窗口幫助文件。我認爲它比在線版本更好 - 找到內容更容易。

2

雖然內置在您的計算機中的文檔肯定比help()(比如windows idle)更好,但對於一些更常見的主題,另一種選擇只是將一些聯機文檔保存到您的計算機上。對於您需要使用很多並希望脫機訪問的模塊,您可以下載官方在線python文檔的文本文件版本,這是獲取文檔的最佳位置。 (文件>保存頁面爲>選擇.txt文件格式)

4

如果您在Mac上工作有Dash,它允許您下載docsets,然後離線瀏覽/搜索。儘管具有文檔功能,Dash也是片段管理器。

+1

你知道嗎如果有Dash的開源替代品?離線文檔瀏覽的狀態很糟糕,我正在考慮自己寫一篇文章。 – lsh

+2

退房Zeal - http://zealdocs.org – bogdansrc

5

只是爲了增加對Python文檔的離線訪問(主要是核心)的另一種選擇:

我沒有在時刻可以訪問的Linux計算機,但在Windows,您可以導航到your_python_dist_folder/doc找一些幫助文件。例如,特別是python275.chm

如果有你的Linux機器上沒有doc文件夾,您可以下載文件here和谷歌的一個Linux CHM觀衆:

https://www.google.com/search?q=linux+chm+viewer

::注:

一些發行版還包括文檔對於那裏的其他包...可能值得一檢查。除此之外,help(module)通常會返回良好的信息。

編輯

你可以得到的東西,可能是通過使用pydoc更接近你想要的東西一點點。例如。您算算模塊中尋找一些關於sin

import math 
import pydoc 
[i for i in dir(math) if 'sin' in pydoc.getdoc(getattr(math,i))] 

這將返回其文檔字符串包括sin方法:

['acos', 'acosh', 'asin', 'asinh', 'cos', 'cosh', 'isinf', 'sin', 'sinh'] 

,而您則可以運行help()功能

10

是pydoc附帶python,可以做搜索,但只能在可用模塊的簡介行中。引用pydoc --help

 
pydoc -k 
    Search for a keyword in the synopsis lines of all available modules. 

請注意,在pydoc中,您可以使用「/」執行搜索。

+0

這聽起來像是我正在尋找的東西,除了當我使用它時,它失敗了:'AttributeError:'NoneType'對象沒有屬性'load_module'' 。我想也許我有一個模塊存在問題,但我找不到它,大概這樣一個工具應該處理這樣的問題。此外,它看起來每次都會加載所有模塊,這需要一段時間:如果它緩存了結果(可能它確實存在,我只是沒有看到它,因爲它失敗),那將是非常棒的。 – naught101

+1

確實,pydoc通過導入模塊來工作。如果你的python路徑中有一個不能被導入,它將會失敗。 –

0

這可能不是可用的問題,提出和回答的時間,但現在python.org使所有在網上提供的文檔作爲可導航的HTML文件的存檔和檢索脫機:https://docs.python.org/2/download.html

(該鏈接指向最新版本的2.x的文檔,但您可以從該頁面選擇3.x和舊的2.x版本)

+0

不幸的是,這只是核心文檔,沒有第三方庫。 – naught101

4

這在評論中已經提到:Zeal 與Dash類似,但是對於Windows/Linux。它使用與Dash相同的來源。它使用Qt構建,並且可以在多個發行版的倉庫中使用,而Ubuntu則有一個PPA。下載它here

Zeal is a simple offline API documentation browser inspired by Dash (OS X app), available for Linux and Windows.

  • Quickly search documentation using Alt+Space (or customised) hotkey to display Zeal from any place in your workspace.
  • Search in multiple sets of documentation at once.
  • Don't be dependent on your internet connection.
  • Integrate Zeal with Emacs, Sublime Text, or Vim. See Usage » Editor plugins for details.

它是開源(GPL),開發發生在GitHub。 Zeal使用與在線文檔相同的樣式表/ HTML,所以一切都應該看起來很熟悉。

瀏覽器內的替代品是devdocs.io。即使您處於離線狀態,您也可以訪問該網站,前提是您已將其標記爲本地離線存儲。您需要啓用Python 2文檔,然後將其標記爲離線存儲here。但是,作爲在線Python文檔的長期用戶,我發現DevDocs使用的自定義樣式表有點分散注意力。