Python在命令行和pyclipse中的行为方式不同

时间:2013-09-21 21:32:11

标签: python macos csv pydev xlsxwriter

我正在使用OS X 10.7.5在mac上编写python脚本,该脚本使用内置的csv模块从csv文件读取数据,并使用xlsxwriter模块写入xlsx文件。使用pydev在eclipse中执行时它可以很好地工作。但是当从命令行调用时,脚本会阻塞字符串“Rodríguez”,其中包含一个unicode字符并抛出此消息。

File "/Library/Python/2.7/site-packages/xlsxwriter/worksheet.py", line 54, in cell_wrapper
    return method(self, *args, **kwargs)

  File "/Library/Python/2.7/site-packages/xlsxwriter/worksheet.py", line 365, in write
    return self.write_string(row, col, *args)

File "/Library/Python/2.7/site-packages/xlsxwriter/worksheet.py", line 57, in cell_wrapper
    new_args = list(xl_cell_to_rowcol(args[0]))

File "/Library/Python/2.7/site-packages/xlsxwriter/utility.py", line 80, in xl_cell_to_rowcol
match = range_parts.match(cell_str)

TypeError: expected string or buffer

我在两个环境中都检查了python的版本,它是一样的。

sys.version_info(major=2, minor=7, micro=1, releaselevel='final', serial=0)

这里可能有什么问题?是否还需要在命令行中设置其他设置?

1 个答案:

答案 0 :(得分:1)

将此添加为脚本中的第一行:

# -*- coding: utf8 -*-

有关详细信息,请参阅http://www.python.org/peps/pep-0263.html