Python shebang 和换行符

2023-12-05

要使 Python 脚本在 Linux 和 bash 上可执行,可以使用 shebang

#! /usr/bin/env python

作为脚本的第一行。如果这一行恰好以 Windows 风格的换行符 \r\n(回车 - 换行)结束,而不是 Unix 风格的换行符 \n,那么 bash 将无法通过 Python 解释器运行该脚本。

我正在用Python进行跨平台开发。当我在 Windows 中工作时,自然的换行符是 \r\n。当我在 Linux 中工作时,自然的换行符是 \n。鉴于我使用 Mercurial 进行版本控制,在包含 shebang 的脚本文件中强制使用 \n 换行符的最佳方法是什么?


常见的方法是根本不自己生成外部包装器脚本,而是在您的setup.py并让它们在包安装过程中生成。

如果您执行类似以下操作:

setup(
    entry_points = {
        "console_scripts": [
            "script_name": "your.module.name:main",
        ],
    }
)

...然后,在安装时,一个名为script_name将生成并安装,并适当配置以在您当前的平台(shebang 线和所有平台)上运行。这使得使用的行尾字符变得毫无意义。

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

Python shebang 和换行符 的相关文章

随机推荐

  • 在浏览器中为节拍器准确计时声音[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想创建一个虚拟节拍器并在每一步中播放节拍器声音 常用方法如setTimeout setInterval 不够准确 我怎样才能让它在不延迟或不掉节拍
  • DB2 有“插入或更新”语句吗?

    从我的代码 Java 中 我想确保执行代码后数据库 DB2 中存在一行 我的代码现在做了一个select如果没有返回结果 它会执行insert 我真的不喜欢这段代码 因为它使我在多线程环境中运行时面临并发问题 我想要做的是将这个逻辑放入 D
  • 如何通过其他列的条件按行值提取数据框?

    我有一个数据框如下 values a 003C 003P1 003P1 003P1 004C 004P1 004P2 003C 003P2 003P1 003C 003P1 003P2 003C 003P1 004C 004P2 001C
  • 如何通过 UIViewRepresentable 访问 goBack 和 goForward

    我通过 UIVewRepresentable 在 SwiftUI 中添加了 WKwebview 我很难获得一些按钮来使网络视图后退和前进 下面是我制作的两个课程 但我什至没有让打印工作 也许是一个错误 import SwiftUI impo
  • 如何通过 3G 连接检查互联网连接状态?

    我有以下方法 public static bool IsNetworkConnected ConnectionProfile InternetConnectionProfile NetworkInformation GetInternetC
  • 新字符串列表在 LINQ 初始化时打乱列表元素的顺序

    在我的 ASP NET 5 API 项目遇到一些挫折后 我决定将其重建为较旧的 WebApi 2 项目 我正在尝试从 LINQ 查询生成 2 个字符串的集合列表 最初是 2 元素字符串数组的列表 现在是字符串列表的列表 下面是在 ASP N
  • PHP - 比较不同格式的日期[重复]

    这个问题在这里已经有答案了 日期格式 date1 16 MAR 2015 date2 04 FEB 15 我怎样才能检查是否 date1 lt date2 date1 gt date2 我需要将日期格式转换为 date1 16 3 2015
  • 如何在 PHP 中回显 HTML?

    我想有条件地输出 HTML 来生成页面 那么在 PHP 4 中回显多行 HTML 片段的最简单方法是什么 我需要使用像 Smarty 这样的模板框架吗 echo n I m sure there s a better way echo n
  • 将 JavaScript 自定义类型从 InvokeScript 返回到 C#,并保留自定义类型结构

    我正在 WebBrowser 控件上使用 InvokeScript 尝试使用适用于 HTML 的 Google Maps JavaScript API 制作简单的地图 我在 JavaScript 的 HTML 页面中编写了一些函数来处理地图
  • 插入后一小时后的日期时间。夏令时

    我注意到 当我向表中插入某些日期时 MySql 数据库会从 DateTime 对象中减去一个小时 例子 Insert 2021 03 29 11 44 14 938 Result 2021 03 29 10 44 14 938 我正在插入
  • 为什么哈希函数除法只使用素数

    使用除法进行哈希意味着 h k k mod m 我读到了 m 不应该是 2 的幂 这是因为如果 m 2 p h 就变成 只是 k 的 p 个最低位 通常我们选择m作为素数 数字不太接近 2 的幂 有人可以用一个小例子解释最低阶位部分吗 我认
  • Visio 中的形状连接器

    我正在使用 C 在 Studio 2010 中编写 Visio 2010 的加载项 我需要阅读当前在 Visio 中打开的图表 我知道如何阅读图表的形状 问题是 如果我有一个形状对象 其属性可以给我页面上的形状和其他形状 如果有 的坐标 当
  • 无法使用 vue-html2pdf 将 HTML 代码转换为 PDF

    我有一个 vuejs 项目 我必须使用 vue html2pdf 当我在标签中写入文本时 section something section 我的PDF就生成了 但是当我在标签中写入时 section p something p secti
  • 如何在 Sqlalchemy orm 会话中正确禁用缓存?

    我有一个守护进程线程 它循环并执行以下查询 try newsletter self session query models Newsletter filter models Newsletter status PROCESSING lim
  • 如何更改 JFreeChart 甘特图中特定子任务的颜色?

    我有一个包含 5 个任务的甘特图 每个任务又分为3个子任务 我需要为每个子任务定义不同的颜色 例如子任务1 浅蓝色 子任务2 蓝色 子任务3 深蓝色 我尝试用谷歌搜索一些示例 但没有找到任何完整的工作示例 谢谢 更新 1 我使用 Inter
  • 如何在 PHP 和 mySQL 中的单个语句中运行多个更新查询

    我想在单个语句中运行多个查询如何执行此操作 你必须使用 mysqli 而不是 mysql 请参考以下内容 http php net manual en book mysqli php http php net manual en mysql
  • jQuery 数据表从所选选项列排序和排序

    我有一个 jquery 数据表 我需要在包含 html 选择输入的单元格内按所选选项中的文本进行过滤和排序
  • Http.get() 工作但在 Ionic 4 的构建(发布/调试)中不起作用

    我正在尝试从一个简单的 api 获取数据 它在离子服务 浏览器 但是当我构建应用程序时 http 调用不起作用 我的代码是 this http get http example com api routes subscribe respon
  • 在多个表单之间共享一个类

    我需要帮助来解决这个问题 我尝试过搜索 我想我可能已经找到了使用单例设计模式的解决方案 但想确定一下 我有一个用 Visual C 编写的 Windows 窗体应用程序 我正在编写一个 SerialPort 类 以便可以通过所有表单共享它
  • Python shebang 和换行符

    要使 Python 脚本在 Linux 和 bash 上可执行 可以使用 shebang usr bin env python 作为脚本的第一行 如果这一行恰好以 Windows 风格的换行符 r n 回车 换行 结束 而不是 Unix 风