【发布时间】:2012-05-29 13:16:36
【问题描述】:
我正在尝试将 Php Code Sniffer 与 Sublime 一起使用,但在 sublime 终端中,每次尝试嗅探文件时都会得到以下信息:
Traceback (most recent call last):
File "./sublime_plugin.py", line 350, in run_
File "./phpcs.py", line 382, in run
File "./phpcs.py", line 270, in run
File "./phpcs.py", line 98, in get_errors
File "./phpcs.py", line 138, in execute
File "./phpcs.py", line 141, in parse_report
File "./phpcs.py", line 106, in shell_out
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 623, in __init__
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 1141, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied
似乎某处存在权限问题,但是:
- 我已将 /opt/local/lib/php/pear/bin 中的 phpcs 文件设置为可执行文件并检查了所有父目录
- 我已将 sublime 包目录中的 phpcs.py 设置为可执行文件(虽然不确定是否需要它),与父目录同上
- 我已经检查过了,我可以在命令行上很好地运行 phpcs。它在 PATH 中,它会做它应该做的事情并返回没有错误的结果。
根据 ms4py 注释更新输出 - ln 105 处的“打印 cmd”:
['php', '-l', '-d display_errors=On', u'/Users/pete/projects/portal/apps/frontend/modules/chilled/actions/actions.class.php']
[u'/opt/local/lib/php/pear/bin', '--report=checkstyle', '-n', u'--standard=PEAR', u'/Users/pete/projects/portal/apps/frontend/modules/chilled/actions/actions.class.php']
【问题讨论】:
-
权限错误是由于 phpcs.py 在第 105 行执行 (github.com/benmatselby/sublime-phpcs/blob/master/phpcs.py#L105)。在此行之前放置一个
print cmd并告诉我们命令。 -
当我遇到其他错误时已经在配置中添加了该路径,所以我不认为是这样。
-
那么设置应该直接链接到可执行文件:
'/opt/local/lib/php/pear/bin/phpcs' -
是的。我把它收回。我已经输入了路径减去文件名本身。修复路径确实解决了问题。谢谢。
标签: php python sublimetext codesniffer