当 pydoc 似乎不在 PATH 上时,如何运行它?
Posted
技术标签:
【中文标题】当 pydoc 似乎不在 PATH 上时,如何运行它?【英文标题】:How can I run pydoc when it doesn't appear to be on the PATH? 【发布时间】:2017-06-28 23:24:30 【问题描述】:我正在使用 MACOSX 10.12.3 和 Python 3.52
在 python IDLE 的 bash 脚本中运行 pydoc 时遇到问题。 例如:
myFile = ‘/home/user/afile.py’
import subprocess
subprocess.run([‘pydoc’, ‘-w’, myFile])
不可避免地不会像预期的那样创建 html 文件。 另一方面,当我在终端中运行 pydoc 时
pydoc3 -w /home/user/afile.py
它总是创建想要的 html 文件。但是pydoc -w /home/user/afile.py
会报错
这是因为:
-
python
/home/user/afile.py
包含一些 python3 样式的打印语句。即:print('blabla')
而不是:print 'blabla'
,就像在 python2 上的情况一样。
IDLE 中的 bash 脚本没有加载正确的 pydoc。我还要提一下,运行subprocess.run([‘pydoc3’, ‘-w’, myFile])
会产生错误,例如:
subprocess.run(['pydoc3', '-w', myFile]) 文件 "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/subprocess.py", 第 693 行,运行中 使用 Popen(*popenargs, **kwargs) 作为进程:文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/subprocess.py”, 第 947 行,在 init 中 restore_signals,start_new_session)文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/subprocess.py”, 第 1551 行,在 _execute_child 中 raise child_exception_type(errno_num, err_msg) FileNotFoundError: [Errno 2] No such file or directory: 'pydoc3'
请问有没有人可以解决这个问题?
【问题讨论】:
【参考方案1】:问题 1: 关于针对 python 2 代码运行 python 3 版本的 pydoc - 那行不通。 Pydoc 将执行(导入)目标模块。您需要通过修改路径或使用您喜欢的虚拟环境工具来使用 python 2 版本的 pydoc。
问题 2: 如果您可以获得对所需 python 安装的引用(通过设置路径或激活虚拟环境),那么您可以使用以下语法处理丢失或损坏的入口点:
python -m pydoc -w myfile
您还需要确保 myfile
位于当前目录或 PYTHONPATH 中或以其他方式可导入
【讨论】:
以上是关于当 pydoc 似乎不在 PATH 上时,如何运行它?的主要内容,如果未能解决你的问题,请参考以下文章
当原点不在网格上时,如何将网格/游戏对象放置在相机的 FoV 中间?