我很确定以下错误与我通过SVN与使用Windows系统的同事共享代码有关。在
我自己在Mac上用Python,用TextMate编辑。在
#!/usr/bin/python
import os
from google.appengine.api import users
from google.appengine.ext import webapp
...
运行该代码时,我得到一个语法错误:
^{pr2}$使用SVN时是否存在下线问题?在
感谢每一个暗示。在
编辑
这个问题似乎不是由SVN引起的。在
有趣的是,直接在Shell上执行,没有语法错误。但是使用Textmate验证(使用PyCheckMate)和尝试使用GoogleAppEngineLauncher启动都返回错误。在
虽然Windows和其他计算世界的行结束(通常)是不同的,但Python被设计成对这个问题不可知的。通常Python在使用不同的行结尾时没有问题。在
我试着在我的Mac上运行一个Python脚本,有各种各样的行尾,没有问题。请注意,我使用以下命令运行脚本:
而不是
^{pr2}$这两种形式都值得一试,看看你的问题是否真的是Python问题,还是与shell/kernel有关。我知道有些环境在shebang线上的CRLF结尾有问题。在
虽然Python不应该关心行结尾,但是Mac不喜欢在第一行结束CRLF行,所以这可能是您的问题。在
SVN可以通过将
svn:eol-style
属性设置为native
来转换行结束。当文件在Windows中签出时,它将把你的LF结尾翻译成CRLF,当你在Mac上签出时,它将把你同事的CRLF结尾翻译成LF。在Subversion忽略所有的下线(EOL)样式。它永远不会碰你的文件,除非你告诉它。在
如何告诉Subversion使用不同的EOL样式? 通过设置属性样式:SVEOL到有问题的文件:
可以使用以下方法检查文件是否设置了这些属性:
^{pr2}$相关问题 更多 >
编程相关推荐