4

好吧,我有一个时刻让我质疑我使用电脑的能力。这不是我想作为我的第一个 SO 帖子提出的那种问题,但这里有。

从 Zed 的新“Learn Python the Hard Way”开始,因为我在中断了 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:更多新信息。在命令行...

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

...工作得很好。使用 PowerShell 中的 pydoc 一切正常,无需我担心 pwd、扩展或路径。

4

5 回答 5

7

在 Windows Powershell 中使用: python -m pydoc

例子:

python -m pydoc 打开

python -m pydoc raw_input

python -m pydoc argv

于 2013-12-08T19:55:18.047 回答
2

当您在 windows 命令提示符下键入文件名时,cmd 可以检查 windows 注册表中的默认文件关联,并使用该程序打开它。因此,如果 Inkscape 安装程序将 .py 文件与其自己的 python 版本相关联,cmd 可能会优先运行它并完全忽略 PATH。看到这个问题

于 2011-01-04T17:50:06.513 回答
0

根据您的第二次编辑,您的路径中可能有多个 pydoc.py 副本,首先是“错误”的副本,这样当它启动时它没有正确的执行环境。

于 2010-11-11T05:05:39.880 回答
0

Windows 上 pydoc 的语法:

替代1:

C:\path\PythonXX\python.exe C:\path\PythonXX\Lib\pydoc.py -k/p/g/w X:\path\file_to_doc.py

alt2:

python -m pydoc -k/p/g/w X:\path\file_to_doc.py

其中后者是首选,呵呵。但是,它要求您的 Windows 安装已将 python 注册到环境变量“Path”。

设置windows环境变量:

查看此站点以获取有关在何处找到它们的指南。您要寻找的是“路径”。如果您选择路径并单击编辑,您将看到一长排指向不同文件夹的路径。您在此处看到的路径基本上允许您通过输入程序名称而不是整个路径来在命令行中访问各种程序。所以你在这里要做的是找到你的 Python 安装并复制它的完整路径,如下所示:X:\subfolders\PythonXX\然后你将它添加到路径的长行的最后,如下所示:

X:\earlier\path\to\something;X:\subfolders\PythonXX\

注意“;” 将不同的路径分开,请确保不要忘记它。完成后,单击确认/确定,然后您需要重新启动任何已打开的 cmd.exe。

pydoc.py

问题是 pydoc 是标准 python 库的一个模块,它也由 python 提供支持。据我所知,Windows 环境要求您指定要使用哪个程序运行某个文件。因此,要运行 pydoc.py 文件,我们将使用:

在 windows cmd.exe 中打开文件:

X:\subfolders\Python27\python.exe X:\subfolders\Python27\Lib\pydoc.py

pydoc.py 的论点:

pydoc.py带有许多基于命令行的功能,允许您输入某些参数: -k/p/g/w其中将触发pydoc.py 程序的不同行为。

通过命令行向程序发送参数:

输入这些参数的语法是我所知道的,总是在 之后x:\pathtofile\filename.suffix,由一个简单的空格分隔。这给了我们最终的结果:

替代1:

X:\subfolders\Python27\python.exe X:\subfolders\Python27\Lib\pydoc.py -w X:\path\file_to_doc.py

alt2(将 python 注册到路径):

python -m pydoc -w X:\path\file_to_doc.py

w ”-选项将为您提供要在其上运行文档的文件的 HTML 文档。请注意, pydoc.py 将(根据我的测试)在当前工作目录中创建文档文件。这意味着在实际运行命令之前,您需要将自己放在选择的文件夹中。

-m的作用

在我能找到的东西中,-m 似乎处理注册表项,至少在 msiexec.exe 中。我想它可能会以这种方式用于一般程序。所以我的推测是,如果应用“-m”,将重写追求的参数路径,以便将 .exe 文件用作路径引用。但正如所说,相当投机。

-m 重写所有必需的特定于计算机的注册表项。(在 msiexec.exe 中)根据Microsoft

于 2014-04-06T18:54:30.430 回答
0
python -m pydoc -k/p/g/w <name>
于 2013-07-23T18:50:46.577 回答