Python 脚本给出 `: No such file or directory`

标签 python hashbang

我有几个运行良好的 python 脚本,但是如果我尝试从 bash 运行它,一个脚本(从今天早上开始)开始给我这个错误:

: No such file or directory

我可以通过执行 python script_name.py 来运行“损坏的”脚本,环顾四周后,我发现的一般想法是,也许我的 hashbang 行尾已更改(默默地)所以我通过 VI 中的 :set list 选项查看了一个工作脚本的行尾和一个损坏的脚本,如这个问题中所示 -> View line-endings in a text file

这两个文件似乎都使用相同的字符(a $)结尾,所以我有点不知如何从这里开始。具体来说,如果 set list 不是正确的方法,如何实际“查看”行结尾。

PS:该脚本是可执行的,shebang 在那里,我说只有这 1 个脚本在周末之前工作正常,但从今天早上开始给我这个错误。

-- 编辑:--

通过 dos2unix 运行脚本确实让它再次工作,但我想知道有什么方法可以可视化以 VI(M) 结尾的行,或者为什么 Geany 以某种方式转换了以 VI(M) 结尾的行第一名(因为我从来没有在 dos/windows 系统上工作过)。

最佳答案

从上面的评论来看,您似乎有 dos 行结尾,因此没有正确处理 hashbang 行。

在 Vim 中 :set list 不显示行结束样式,因为该选项仅在读/写文件时使用。在内存中,行尾始终是行尾。用于文件的行结束样式保存在 Vim 每个文件选项中,奇怪地称为 fileformat

要从 Vim 查看/更改行结束样式,可以使用以下命令:

:set fileformat
:set ff

它将显示dosunix。你当然想要 unix ;-).

要快速更改它,您可以使用以下方式保存文件:

:w ++ff=unix

或者如果你愿意:

:set ff=unix

然后正常保存文件。

所以查看所有详细信息只需执行 :help fileformat:help file-formats:help fileformats

关于Python 脚本给出 `: No such file or directory`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43480581/

相关文章:

python - 我所有的测试函数都在加载 conftest.py 中的 fixture ,即使它们不需要它

python - 将 N by N Dataframe 转换为 3 Column Dataframe

c# - Uri.IsWellFormedUriString 用于相对 Hashbang url 兼容性

ajax - 我应该使用 hashbang/shebang 吗?

javascript - pushState 和 SEO

javascript - 仅在 jQuery Mobile 中抑制某些链接的 AJAX/哈希行为

python - 如何通过连接从数据库查询生成嵌套 JSON?使用 Python/SQLAlchemy

python - 如何为 Grove Pi 同时运行两个脚本?

python - 如何使用 Line Edit 在 PyQt 中等待用户输入?

Python脚本给出 `: No such file or directory`