在OSX中调用pydoc - 链接是如何工作的?
调用 pydoc file
时出现了 bad interpreter. no such file or directory.
的错误。
有一个解决办法是用 python -m pydoc file
来调用它。
我想更好地理解链接是怎么工作的。例如,下面这个是什么作用?
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/pydoc /usr/bin/pydoc
- 哪个链接到哪个?
我正在使用2.7版本,pydoc在 /usr/bin/ 目录下,pydoc2.5和pydoc2.6也在那儿。python-config也有同样的问题,它在2.5和2.6版本中也存在。
非常感谢任何帮助。
这是根据下面的正确答案解决问题的方法:
在找到这个链接后,从 http://andilabs.com/Python.framework.zip 重新下载了python框架,链接是 Python在删除重复的python安装后在mac上询问旧路径
通过运行
sudo mv pydoc2.7 pydoc 2.7-orig
创建了pydoc2.7
的备份。使用
sudo cp /Users/mikekilmer/Downloads/Python.framework/Versions/2.7/bin/pydoc2.7 /System/Library/Frameworks/Python.framework/Versions/2.7/bin/
将新下载的pydoc2.7
复制到框架的2.7版本的bin目录下。
显然我之前的 pydoc2.7
不是正确的东西。非常感谢你解释链接是怎么工作的!
1 个回答
这个命令:
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/pydoc /usr/bin/pydoc
创建了一个叫做 /usr/bin/pydoc
的链接,指向:
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/pydoc
在我的系统上,这个文件并不存在。相反,我有:
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/pydoc2.7
注意最后的 2.7
。
所以你创建了一个指向不存在文件的链接,这样在命令行上就会出现错误提示。解决这个问题很简单,先删除 /usr/bin/pydoc
(首先确保它真的是一个链接,可以通过输入 ls -l /usr/bin
来查看,找找 pydoc
-- 如果它的权限旁边有个 l
,那说明它是个链接)。然后,输入:
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/pydoc2.7 /usr/bin/pydoc
这样就会创建一个指向正确文件的链接,现在你应该可以把 pydoc
当作脚本来运行了。