2010-11-10 51 views
3

好吧,我有一個讓我質疑我使用計算機的能力的時刻之一。這不是我想象中的第一個SO帖子,但這裏就是這樣。Windows 7 - 從cmd的pydoc

開始使用Zed的新「學習Python的難題」,因爲我一直在尋找10年中斷和python之後迴歸編程的東西,這總是我想要的。這本書真的跟我說過。話雖如此,我從命令中遇到了pydoc的嚴重問題。我已經在我的系統路徑中獲得了c:/ python26中的所有目錄,並且無論pwd如何,我都可以從命令行執行pydoc - 但它不接受任何參數。不管我輸入什麼內容,我只是得到標準的pydoc輸出,告訴我可接受的參數。

任何想法?對於它的價值,我按照Zed的建議安裝了ActivePython。

C:\Users\Chevee>pydoc file 
pydoc - the Python documentation tool 

pydoc.py <name> ... 
    Show text documentation on something. <name> may be the name of a 
    Python keyword, topic, function, module, or package, or a dotted 
    reference to a class or function within a module or module in a 
    package. If <name> contains a '\', it is used as the path to a 
    Python source file to document. If name is 'keywords', 'topics', 
    or 'modules', a listing of these things is displayed. 

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

pydoc.py -p <port> 
    Start an HTTP server on the given port on the local machine. 

pydoc.py -g 
    Pop up a graphical interface for finding and serving documentation. 

pydoc.py -w <name> ... 
    Write out the HTML documentation for a module to a file in the current 
    directory. If <name> contains a '\', it is treated as a filename; if 
    it names a directory, documentation is written for all the contents. 


C:\Users\Chevee> 

編輯:新的信息,pydoc在PowerShell中工作得很好。作爲一名Linux用戶,我不知道爲什麼我試圖使用cmd - 但我仍然很想弄清楚pydoc和cmd有什麼問題。

編輯2:更多的新信息。在cmd ...

c:\>python c:/python26/lib/pydoc.py file 

...工作得很好。在PowerShell中,只要使用pydoc,一切都可以正常工作,而不必擔心pwd或擴展或路徑。

+0

顯示示例控制檯會話指出問題,最好是從cmd窗口複製/粘貼的問題。 (編輯你的文章,不要添加答案或評論)。另外,在編輯窗口中選擇文本後,使用10101010按鈕將其格式化爲代碼。 – 2010-11-10 21:40:59

+0

如果您輸入命令爲'pydoc.py ...'而不是'pydoc ...',會發生什麼情況? – 2010-11-10 22:56:09

+0

@Jim Garrison - 同樣的輸出。我設置了一個文件關聯for.py到python.exe,所以我不必輸入擴展名。這可能是我的問題嗎? – 2010-11-10 23:11:15

回答

0

根據您的第二次編輯,您可能在路徑中有多個pydoc.py副本,首先出現'錯誤',這樣當它啓動時,它不具有執行的正確環境。

+0

我以爲同樣的事情,所以我去看看。我的路徑包含/ python26,/ python26/scripts,/ python26/lib。而已。對我的文件系統進行徹底搜索可以發現python/26/lib和/ program files/inkscape/python/lib中的pydoc.py。 Inkscape版本不在我的任何地方。有沒有辦法在執行'pydoc'時監視cmd和PowerShell在做什麼? – 2010-11-11 12:08:03

2

當您在Windows命令提示符處鍵入文件的名稱時,cmd可以檢查Windows註冊表以查找默認文件關聯,並使用該程序將其打開。因此,如果Inkscape安裝程序將.py文件與其自己的python版本關聯,則cmd可能會優先運行該文件並完全忽略PATH。見this question

0
python -m pydoc -k/p/g/w <name> 
+1

你可以在這裏添加一些解釋嗎? – 2013-07-23 19:09:41

6

在Windows PowerShell中使用:蟒蛇-m是pydoc

例子:

蟒蛇-m是pydoc開放

蟒蛇-m是pydoc的raw_input

蟒蛇-m是pydoc的argv

0

windows上的pydoc語法:

ALT1:

C:\路徑\ PythonXX \ python.exe C:\路徑\ PythonXX \ LIB \ pydoc.py -k/P/G/W X:\路徑\ file_to_doc。 PY

ALT2:

蟒-m是pydoc -k/p/G/W X:\路徑\ file_to_doc.py

其中後者是更喜歡的人,杜。然而,它需要你的Windows安裝註冊Python的環境變量「路徑」。

設置Windows環境變量:

this site上哪裏可以找到他們的指導。你要找的是「路徑」。如果選擇路徑並單擊編輯,您將看到一長串指向不同文件夾的路徑。你在這裏看到的路徑是,只要輸入程序的名稱,而不是整個路徑,就可以在命令行中基本達到各種程序。所以,你想在這裏做的是找到你的Python安裝並複製它的完整路徑是這樣的:X:\subfolders\PythonXX\然後你把它添加到Path的像這樣的長排的盡頭:

X:\較早\ path \ to \ something; X:\ subfolders \ PythonXX \

注意「;」分開不同的路徑,確保不要忘記它。完成後,單擊確認/確定,然後您需要重新啓動任何已打開的cmd.exe。

的pydoc.py

的事情是,是pydoc是標準Python 11b的模塊,並且它也被Python供電。我所瞭解的Windows環境要求您指定要使用哪個程序運行某個文件。因此,要運行pydoc.py文件,我們將使用:

打開文件在Windows CMD.EXE的:

X:\子文件夾\ Python27 \ python.exe X:\子文件夾\ Python27 \ LIB \ pydoc.py

pydoc.py的論點:

pydoc.py帶有命令的veriety線爲基礎的功能,允許您輸入某些參數: -k/p/g/w其中將觸發不同行爲的pydoc.py-程序。

通過命令行參數發送到程序:

輸入這些參數的語法是什麼,我總是知道x:\pathtofile\filename.suffix後,通過簡單的空間分隔。這讓我們最終的:

ALT1:

X:\子文件夾\ Python27 \ python.exe X:\子文件夾\ Python27 \ LIB \ pydoc.py -w X:\路徑\ file_to_doc.py

ALT2(與註冊到路徑蟒):

蟒-m是pydoc -w X:\路徑\ file_to_doc。PY

的「瓦特」 - 選項會給你要運行的文檔文件的一個HTML文檔。請注意,pydoc.py將(根據我的測試)在當前工作目錄中創建文檔文件。這意味着在實際運行命令之前,您需要將自己置於所選的文件夾中。

的-m

中我能找到的功能,-m似乎處理的註冊表項,至少在msiexec.exe的。我想這可能會用於一般程序。所以我推測的想法是,如果應用「-m」,追蹤參數路徑將被重寫,以便.exe文件將被用作路徑引用。但如前所述,頗具投機性。

-m重寫所有需要的計算機特定的註冊表項。 (在msiexec.exe中)根據Microsoft