定义Python源代码编码的正确方法

2024-05-16

PEP 263 http://www.python.org/dev/peps/pep-0263/定义如何声明Python源代码编码。通常,Python 文件的前两行应以以下内容开头:

#!/usr/bin/python
# -*- coding: <encoding name> -*-

但我看到很多文件都是这样开头的:

#!/usr/bin/python
# -*- encoding: <encoding name> -*-

即,它说encoding而不是coding.

文件编码应该如何声明?


Please use "SyntaxError: Non-ASCII character ..." or "SyntaxError: Non-UTF-8 code starting with ..." trying to use non-ASCII text in a Python script https://stackoverflow.com/questions/10589620 to close duplicate questions about syntax errors resulting from a missing or faulty encoding declaration. This question, on the other hand, is the canonical for questions about how the declaration is written and whether it is necessary.


检查文档here http://docs.python.org/reference/lexical_analysis.html#encoding-declarations:

“如果Python脚本的第一行或第二行中的注释与正则表达式匹配coding[=:]\s*([-\w.]+),该注释被处理为编码声明”

“该表达式的推荐形式是

# -*- coding: <encoding-name> -*-

GNU Emacs 也认可它,并且

# vim:fileencoding=<encoding-name>

这是 Bram Moolenaar 的 VIM 所认可的。”

因此,您可以在“编码”部分之前放置几乎任何内容,但如果您想 100% python-docs-recommendation 兼容,请坚持使用“编码”(没有前缀)。

更具体地说,你需要使用Python可以识别的任何东西以及您使用的具体编辑软件(如果它需要/接受任何东西)。例如。这coding形式被 GNU Emacs 识别(开箱即用),但 Vim 不识别(是的,没有通用协议,它本质上是一个turf war https://en.wikipedia.org/wiki/Turf_war).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

定义Python源代码编码的正确方法 的相关文章

随机推荐

  • 外部类与单例类

    假设我们使用 extern 关键字有一些外部链接 我有 在class1 cpp中 MyClass myClassVar NULL 构造函数初始化上述内容 析构函数删除 然后在class2 cpp和class3 cpp中有 extern My
  • 使用 cfdocument 时仅将页脚添加到最后一页

    我正在使用创建多页文档cfdocument 使用动态文本创建 因此可以有任意数量的页面 甚至一页 我可以用
  • 如何为 Nslocal 通知设置自定义重复间隔......?

    我是 iphone 开发新手 我正在尝试在我的项目中使用 NslocalNotification 我需要每 2 小时或每两天或每两个月等给出提醒 目前我正在使用 NslocalNotification 重复间隔 但它仅适用于使用 Ncale
  • 从空缓冲区构造“std::ostream”是否有效?

    考虑以下 std ostream out nullptr 这是合法且明确定义的吗 如果我现在这样做怎么样 out lt lt hello world n 这是合法且明确定义的吗 如果是这样 大概这是一种无操作 是的 实例化该流是合法且定义明
  • 将 yerr/xerr 绘制为阴影区域而不是误差线

    在 matplotlib 中 如何将误差绘制为阴影区域而不是误差条 例如 而不是 忽略示例图中各点之间的平滑插值 这需要进行一些手动插值 或者只是获得更高分辨率的数据 您可以使用pyplot fill between https matpl
  • 如何将彼此“接近”的纬度/经度点分组?

    我有一个用户提交的纬度 经度点的数据库 并且正在尝试将 接近 点分组在一起 接近 是相对的 但目前看来约为 500 英尺 起初 我似乎只能按前 3 个小数位具有相同纬度 经度的行进行分组 大约是一个 300x300 的盒子 了解当您远离赤道
  • EPPlus Excel 行高不一致

    我已经使用 EPPlus 生成了一个 excel 文件 在 MS Office 2007 中一切似乎都很完美 但客户端使用的是 MS Office 2010 2013 并且在第 29 行之后未设置行高 这是一个非常奇怪的问题 我已经尝试了
  • FindAll 与Where 扩展方法

    我只想知道 FindAll 是否比 Where 扩展方法更快 为什么 例子 myList FindAll item gt item category 5 or myList Where item gt item category 5 哪个更
  • 在 Java 正则表达式中获取多个模式的重叠匹配

    我有同样的问题这个链接 https stackoverflow com questions 18751486 matching one string multiple times using regex in java 但有多种模式 我的正
  • LLVM cpp 后端,它会取代 c 后端吗?

    我的问题是关于 CPP 后端 它与 C 后端的用途相同吗 C 后端是我最喜欢的 LLVM 功能之一 我对它被删除感到非常沮丧 真正的区别是什么 我非常感谢任何帮助 参考 LLVM 3 1 发行说明 http llvm org release
  • jquery.validate:多个远程规则

    我计划使用两个远程规则验证单个文本字段 更多这样的 form validate rules remote url1 php remote url2 php messages remote Error1 remote Error2 这可能吗
  • 如何删除 PyCharm 中的项目?

    如果我关闭一个项目 然后删除该项目文件夹 则在 PyCharm 重新启动后 会再次创建一个空的项目文件夹 只需按顺序执行以下步骤即可 他们假设您当前在 PyCharm 窗口中打开了该项目 单击 文件 gt 关闭项目 关闭项目 在 PyCha
  • 如何将 Google Now 搜索栏添加到我的应用程序中?

    谷歌刚刚将其搜索栏从 Google Now 引入到了 Play 商店应用程序中 如下面的 gif 所示 如何将这个操作栏搜索栏实现到我自己的应用程序中 我想要 style 汉堡动画 从工具栏按钮访问 麦克风按钮 对棒棒糖设备的连锁反应 我已
  • 获取 TreeView 中子节点的 SelectedIndex

    我目前正在使用 C 开发一个 wpf 项目 我创建了一个树视图 其中包含父节点和子节点 我想知道是否有办法获取用户单击的子节点的索引 类似于使用组合框时的 SelectedIndex 我尝试过各种方法 例如 int val TreeView
  • 命令 /Applications/Xcode-beta.app/Contents/Developer/usr/bin/atool 失败,退出代码 255

    它发生在新的 Xcode7 beta 中 CompileAssetCatalog Users admin Library Developer Xcode DerivedData InstaAd ddgdnbxlpxipirebpndfmgr
  • .htaccess 重写而不影响相对的 image/css/js URL?

    我需要一些有关 htaccess 文件的简单帮助 提前谢谢您 我有很多网站网址 例如 www site com index php page path solutions overview html www site com index p
  • 如何使用 DateTime 计算已经过去了多少时间?

    我有一个启动操作的按钮单击事件 private void Diagnose Click object sender EventArgs e processfinish false timer2 Enabled true timerCount
  • 从字典的元素创建 Pandas 数据框

    我正在尝试从字典创建一个 pandas 数据框 字典设置为 nvalues y1 1 2 3 4 y2 5 6 7 8 y3 a b c d 我希望数据框仅包含 y1 and y2 到目前为止我可以使用 df pd DataFrame fr
  • 循环多个 UIAlertController

    在某些情况下 我的应用程序需要显示多个警报消息 错误消息在启动时收集 并且需要一次向用户显示一条 当第一个被确认后 应该呈现下一个 问题在于 显然 它们都试图同时执行 有没有一种聪明的方法可以同步执行此操作 这是一些简单描述我想要做的事情的
  • 定义Python源代码编码的正确方法

    PEP 263 http www python org dev peps pep 0263 定义如何声明Python源代码编码 通常 Python 文件的前两行应以以下内容开头 usr bin python coding