【问题标题】:OSError: [Errno 13] Permission denied from python when using Sublime phpcs package, OSX 10.7OSError: [Errno 13] Permission denied from python when using Sublime phpcs package, OSX 10.7
【发布时间】: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 并告诉我们命令。
  • 检查一下,这里是修复:github.com/benmatselby/sublime-phpcs/issues/4
  • 当我遇到其他错误时已经在配置中添加了该路径,所以我不认为是这样。
  • 那么设置应该直接链接到可执行文件:'/opt/local/lib/php/pear/bin/phpcs'
  • 是的。我把它收回。我已经输入了路径减去文件名本身。修复路径确实解决了问题。谢谢。

标签: php python sublimetext codesniffer


【解决方案1】:

将 cmets 放入此答案并标记为社区 wiki:

检查一下,这里是修复: github.com/benmatselby/sublime-phpcs/issues/4 – schlamar 2012 年 5 月 29 日 13:47

那么设置应该直接链接到可执行文件: '/opt/local/lib/php/pear/bin/phpcs' - schlamar 2012 年 5 月 29 日 14:15

正如 github 问题中所解释的,phpcs 中有一个新设置来解决此问题,如果 Sublime 无法自动找到它,则允许用户提供 php cs 可执行文件的路径:

phpcs_executable_path

【讨论】:

    猜你喜欢
    • 2015-03-07
    • 1970-01-01
    • 2012-07-08
    • 2019-11-27
    • 2017-07-15
    • 2020-06-21
    • 2018-08-15
    相关资源
    最近更新 更多