Python+SVN+Windows/Mac=无效语法?

2024-04-24 11:46:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我很确定以下错误与我通过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启动都返回错误。在


Tags: 代码fromimport编辑windowsmacusr系统
3条回答

虽然Windows和其他计算世界的行结束(通常)是不同的,但Python被设计成对这个问题不可知的。通常Python在使用不同的行结尾时没有问题。在

我试着在我的Mac上运行一个Python脚本,有各种各样的行尾,没有问题。请注意,我使用以下命令运行脚本:

python test.py

而不是

^{pr2}$

这两种形式都值得一试,看看你的问题是否真的是Python问题,还是与shell/kernel有关。我知道有些环境在shebang线上的CRLF结尾有问题。在

虽然Python不应该关心行结尾,但是Mac不喜欢在第一行结束CRLF行,所以这可能是您的问题。在

0000000 # ! / u s r / b i n / p y t h o n \r \n
                                          ^^

SVN可以通过将svn:eol-style属性设置为native来转换行结束。当文件在Windows中签出时,它将把你的LF结尾翻译成CRLF,当你在Mac上签出时,它将把你同事的CRLF结尾翻译成LF。在

Subversion忽略所有的下线(EOL)样式。它永远不会碰你的文件,除非你告诉它。在

如何告诉Subversion使用不同的EOL样式? 通过设置属性样式:SVEOL到有问题的文件:

svn propset svn:eol-style LF /path/to/my/file/in/workingcopy

可以使用以下方法检查文件是否设置了这些属性:

^{pr2}$

相关问题 更多 >