2010-11-10 50 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