Flask 执行报错:env: python\r: No such file or directory

Flask 768 浏览

| 解决方案

    step1. vim打开执行文件,如 vim manage.py

    step2. 进入命令行执行 set ff  回车查看当前文件格式 fileformat=dos,发现文件格式是windows的,这时候才想起来我这个文件以前是在windows上创建的,现在在unix下导致文件格式错误。

    step3. 进入命令行执行 set ff=unix 修改文件格式为unix,主要是这个操作。

    step4. 进入命令行执行 set ff 查看当前文件格式 fileformat=unix。

    step5. 进入命令行执行 wq! 保存文件即可。

| 解释原因

    这主要是因为多了 \r 这个字符的原因。

    我们的文件头部通常会给这么一句 #!/usr/bin/env python ,我们在windows下回车换行最终变成 #!/usr/bin/env python\r\n 。

    windows下的程序会认为 #!/usr/bin/env python 就是一行,因为换行是 \r\n。而linux呢,则会认为#! /usr/bin/env python\r 是一行,因为linux下 \n 就是换行。于是,刚才的错误就出来了,因为根本没有python\r这个文件。

    但是理论上应该报错信息应该这样: /usr/bin/env python\r: No such file or directory 。但是在linux终端下,输出 \r 会什么都不显示,只是把光标移到行首。于是终端虽然输出了 /usr/bin/env python,但是碰到\r后,光标会被移到行首把 /usr/bin/env python 这一句覆盖了,就只有这一段提示 No such file or directory。

|  版权声明:本文为博主原创文章,转载请注明出处。