Windows下Python3脚本传到Linux下./example.py执行失败

1. 背景

大多数情况下通过pycharm编写Python代码,编写调试完,到Linux下发布执行。

以example.py脚本为例

#! /usr/bin/env python3
#! -*- encoding: utf-8 -*-
def test(x,y):
    x=int x
    y=int y
    c=x+y
    return c
if _name_=="__main__":
    print(test(2,6)

在Linux下执行python3 example.py成功但./example.py执行报错。

偶然发现vi example.py打开文件,底部会显示这个文件是dos格式的。

突然想起来,windows和Linux下文件的换行符不一样。

使用dos2unix工具转换下./example.py可以执行了。

2. 疑惑

Windows下Python3脚本传到Linux下,为什么python3 example.py成功?./example.py执行报错?

3. 分析

先看下python3 example.py执行,指定Python3解释器,猜测下Python3能在Linux下执行Windows的Python脚本,也就是说Python3解释器自动将dos下换行符(/r/n)转换或解析为unix下换行符(/r)。

./example.py执行,是根据文件开头指定的Python解释器来执行(#! /usr/bin/env  python3)。在指定解释器前,要先能够识别这个文件的换行符,此次执行失败就是换行符搞的鬼。

做个实验:仅仅把(#! /usr/bin/env  python3)这一行在Linux下删除后,重新编写,并换行。再次执行验证是否可行。

实验失败了。

有两点结论:

1) 文件换行符是dos还是unix,是以文件为粒度的,不是某一行来决定的。

这一点可以知道,./example.py执行是操作系统先识别文件换行符,才能调用Python解释器。

2) Python3 example.py是不需要操作系统来识别文件换行符,直接Python解释器来处理。



喜欢的朋友记得点赞、收藏、关注哦!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/78128.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

当MCP撞进云宇宙:多芯片封装如何重构云计算的“芯“未来?

当MCP撞进云宇宙:多芯片封装如何重构云计算的"芯"未来? 2024年3月,AMD发布了震撼业界的MI300A/B芯片——这颗为AI计算而生的"超级芯片",首次在单封装内集成了13个计算芯片(包括3D V-Cache缓存、CDNA3 GPU和Zen4 CPU),用多芯片封装(Multi-Chip Pac…

用定时器做微妙延时注意事项

注意定时器来着APB1还是APB2,二者频率不一样,配置PSC要注意 (1)高级定时器timer1, timer8以及通用定时器timer9, timer10, timer11的时钟来源是APB2总线 (2)通用定时器ti…

三类思维坐标空间与时空序位信息处理架构

三类思维坐标空间与时空序位信息处理架构 一、静态信息元子与元组的数据结构设计 三维思维坐标空间定义 形象思维轴(x):存储多媒体数据元子(图像/音频/视频片段) 元子结构:{ID, 数据块, 特征向量, 语义…

spring boot中@Validated

在 Spring Boot 中,Validated 是用于触发参数校验的注解,通常与 ​​JSR-303/JSR-380​​(Bean Validation)提供的校验注解一起使用。以下是常见的校验注解及其用法: ​1. 基本校验注解​​ 这些注解可以直接用于字段…

Hadoop 单机模式(Standalone Mode)部署与 WordCount 测试

通过本次实验,成功搭建了 Hadoop 单机环境并运行了基础 MapReduce 程序,为后续分布式计算学习奠定了基础。 掌握 Hadoop 单机模式的安装与配置方法。 熟悉 Hadoop 环境变量的配置及 Java 依赖管理。 使用 Hadoop 自带的 WordCount 示例程序进行简单的 …

历史数据分析——运输服务

运输服务板块简介: 运输服务板块主要是为货物与人员流动提供核心服务的企业的集合,涵盖铁路、公路、航空、海运、物流等细分领域。该板块具有强周期属性,与经济复苏、政策调控、供需关系密切关联,尤其是海运领域。有不少国内股市的铁路、公路等相关的上市公司同时属于红利…

openEuler 22.03 安装 Mysql 5.7,TAR离线安装

目录 一、检查系统是否安装其他版本Mariadb数据库二、环境检查2.1 必要环境检查2.2 在线安装(有网络)2.3 离线安装(无网络) 三、下载Mysql2.1 在线下载2.2 离线下载 四、安装Mysql五、配置Mysql六、开放防火墙端口七、数据备份八、…

喷泉码技术在现代物联网中的应用 设计

喷泉码技术在现代物联网中的应用 摘 要 喷泉码作为一种无速率编码技术,凭借其动态生成编码包的特性,在物联网通信中展现出独特的优势。其核心思想在于接收端只需接收到足够数量的任意编码包即可恢复原始数据,这种特性使其特别适用于动态信道和多用户场景。喷泉码的实现主要…

GZIPInputStream 类详解

GZIPInputStream 类详解 GZIPInputStream 是 Java 中用于解压缩 GZIP 格式数据的流类,属于 java.util.zip 包。它是 InflaterInputStream 的子类,专门处理 GZIP 压缩格式(.gz 文件)。 1. 核心功能 解压 GZIP 格式数据(RFC 1952 标准)自动处理 GZIP 头尾信息(校验和、时…

网络编程——TCP和UDP详细讲解

文章目录 TCP/UDP全面详解什么是TCP和UDP?TCP如何保证可靠性?1. 序列号(Sequence Number)2. 确认应答(ACK)3. 超时重传(Timeout Retransmission)4. 窗口控制(Sliding Win…

性能测试工具篇

文章目录 目录1. JMeter介绍1.1 安装JMeter1.2 打开JMeter1.3 JMeter基础配置1.4 JMeter基本使用流程1.5 JMeter元件作用域和执行顺序 2. 重点组件2.1 线程组2.2 HTTP取样器2.3 查看结果树2.4 HTTP请求默认值2.5 JSON提取器2.6 用户定义的变量2.7 JSON断言2.8 同步定时器&#…

rabbitMQ如何确保消息不会丢失

rabbitmq消息丢失的三种情况 生产者将消息发送到RabbitMQ的过程中时,消息丢失。消息发送到RabbitMQ,还未被持久化就丢失了数据。消费者接收到消息,还未处理,比如服务宕机导致消息丢失。 解决方案 生产者发送过程中,…

Beetle-RP2350 扩展板设计

Beetle-RP2350 扩展板设计 本文介绍了 DFRobot Beetle RP2350 开发板的扩展板设计,包括参数特点、效果展示、原理图、实物验证、工程测试等,为 RP2350 系列产品的开发提供了便捷。 PCB 工程详见:Beetle-RP2350扩展板 - 立创开源硬件平台 . …

2025年一加7pro刷twpr / magisk / kali nethunter教程+资源下载+避坑指南

从二手市场500淘了一个一加7pro 12+256 ,根据网上教程刷机但很多坑,折腾一周后搞定,记录下给后人避坑 资源下载:链接:https://pan.quark.cn/s/c16b972509f2 提取码:mUW7 本文是主流程+避坑指南,没有基础的需要手把手教学的shell都不会的就别看了,直接放弃或者tb找人花钱…

java HashMap,高效 哈希

java HashMap 有独特的设计。 哈希表数组的每个位置是一个哈希桶&#xff0c;里面由链表或红黑树实现。&#xff08;> 8 或 < 6 的变化时&#xff0c;避免频繁切换&#xff09; 容量&#xff08;capacity&#xff09;&#xff1a; 哈希表中桶&#xff08;bucket&#xf…

【业务领域】计算机网络基础知识

《计算机网络方面有哪些书籍值得推荐&#xff1f;》 知乎扫盲贴&#xff1a; 《网络是怎么链接的》 初识RDMA技术——RDMA概念&#xff0c;特点&#xff0c;协议&#xff0c;通信流程 采样 》 存储 》传输 》处理 》反应 传感器 存储器 接口 算法/cpu 机器

List--链表

一、链表 1.1 什么是List&#xff1f; 在C语言中&#xff0c;我们需要使用结构体struct来进行List(链表&#xff09;的实现&#xff1a; struct ListNode {DataType Data;//DataType是任意类型的变量定义struct ListNode* next;//指向下一个结点的指针变量 }; 与之前的vect…

tensor 的计算操作

1、创建tensor 常见创建 tensor 的方法 函数 作用 torch.Tensor(*size) 通过指定尺寸&#xff0c;生成一个 值全为 0 的 tensor torch.tensor(*list) 直接通过指定数据&#xff0c;生成tensor&#xff0c;支持 List、Numpy数组 torch.eye(row, column) 按照指定的行列数…

【Java面试题04】MySQL 篇

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、MySQL 篇&#xff1a;☀️☀️☀️1、MySQL 是如何实现事务的? 后序还在更新中~~~三、总结&#xff1a;&#x1f353;&#x1f353;&#x1f353; 一、前言&#x1f680;&#x1f680;&#x1f680; ☀️ 你每一…

UDP/TCP协议知识及相关机制

一.UDP协议 UDP是一种无连接、不可靠、面向报文、全双工传输层的协议~ 1.无连接 &#xff1a; 知道对端的端口号和IP可以直接传输&#xff0c;不需要建立连接 2..不可靠&#xff1a;没有确认机制&#xff0c;没有重传机制&#xff0c;不知道数据包能否能正确到达对端&#xff0…