dos 和 unix 下的 python 文件

标签 python linux

我在 windows 中有一些 python 文件,我通过 samba 将它们传输到我的 gentoo

我检查他们的模式是可执行的,我使用./xxx.py运行它,但得到一个错误:

: No such file or directory

我很苦恼,它不提示什么文件不在这里。

但是当我使用python xxx.py时,它可以以正确的方式运行。

然后我在vim中使用set ff检查CR字符,发现它是dos,然后我使用set ff=unix 设置它,现在它可以使用 ./xxx.py

运行

但不知道为什么在ff=dos时可以使用python xxx.py

最佳答案

Windows 行结尾是 CRLF,或 \r\n

Unix 简单地使用 \n

当操作系统读取您的 shebang 行时,它会看到 #!/usr/bin/python\r。它无法运行此命令。

从 unix shell 中查看此行为的一种简单方法是 $(echo -e 'python\r')(它尝试运行 python\r 作为一个命令)。此输出也将类似于 : command not found

Windows 下的许多高级代码编辑器都支持使用 unix 行尾进行 native 保存。

关于dos 和 unix 下的 python 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13669092/

相关文章:

python - 如何获取利萨如曲线表中所有曲线的X和Y位置?

python - python中的定时电子邮件提醒

python - Azure 机器学习工作室设计器 - 注册数据集时出现意外 "create new version"

linux - 无法在 Linux 中运行具有 RAILS bundle 命令的 cronjob(.sh 文件)

python - redis管道execute()方法什么时候被阻塞?

python - 将 ">="参数传递给 argparse

c - 这段代码的输出是什么,为什么?

linux - 无法在容器内安装已安装的 block 设备 : "is not a block device"

php - webapp被黑了,但是插入的确切代码是什么? echo (gzinflate(base64_解码(".....")

linux - Arch Linux 安装 : This kernel requires an x86-64 CPU, 但只检测到 i686 CPU