[英]Issue with making python program executable
我正在尝试创建一个程序,以便我可以使用以下格式通过命令行运行它:
./myProgram
我把它变成了可执行文件并将#!/usr/bin/env python
放在标题中,但它给了我以下错误。
env: python\r: No such file or directory
但是,当我运行“python myProgram”时,它运行正常。 有人能告诉我我做错了什么吗?
你的行结尾是错误的。 使用dos2unix
来修复它们。
关于ignacio的建议+1。
但是,为了更直接地回答问题的第1部分,每个OS /系统使用不同的行终止字符:
POSIX(任何Unix风格,如Linux,* BSD,Mac OS X等)使用\\n
(NEWLINE)而DOS / Win使用组合\\r\\n
(CR /回车+ NEWLINE)和旧Mac OS 8或9仅使用CR或\\r
。
要解决这个问题,您可以运行像ignacio建议的实用程序,或者您应该可以从文本编辑器中执行此操作(但可能不是很明显)。
回答问题的另一部分, $ python myProgram
工作原因是因为Python将所有三个不同的行结尾都视为相同...顶部的shebang行被忽略,因为你告诉Python加载并运行该脚本, “ #
”表示第一行是注释,因此被忽略。
当你告诉你的操作系统shell运行它时,它需要解析该行并执行你请求的任何解释器,但如果它不能,它会像你一样呕吐。
希望这可以帮助!
PS。 在旁注中,您可以找到操作系统上正在使用的行终止字符,只需查看os.linesep
(数据)属性即可。 例如,在我的Mac(OS X)上,我得到了这个:
>>> import os
>>> os.linesep
'\n'
这里是我从我的核心Python简介课程笔记中抄袭的其他相关属性的快速摘要:
dos2unix filename.py
或在vim内部发出命令:set fileformat=unix
并保存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.