shell调用python权限不足_请教个shell脚本调用python脚本的问题

  • Post author:
  • Post category:python


http://www.cnblogs.com/ocean1100/p/9276011.html

一开始代码头如上链接所述,是正常运行

#!/usr/bin/python

后面python脚本加了一些中文字符,比如print(“测试”)

代码头部变成

#!/usr/bin/python

# -*- coding: utf-8 -*-

这时候shell脚本调用python脚本就出错了

/scripts/xxx.py: line 1: #!/usr/bin/python: No such file or directory

这是为什么呢

网友评论:

换python3

别用python2了 中文编码搞死你

拥抱python3吧

—— 来自 HUAWEI MHA-AL00, Android 8.0.0上的 v2.0.4-play

SHELL脚本贴出来。

Python内容也贴出来。

贴全。

不要用 #!/usr/bin/python 用 #!/usr/bin/env python

赞同#5

你也可以which python看看。你的python绝对路径对了没

—— 来自 SAMSUNG GT-N7100, Android 4.0.4上的 v2.0.4

也可以运行你装的Python,参数是py的路径

路径错了吧 你输入which python看看路径先

一开始是正常的,指定的路径应该没问题才对

那就只能bash -x看看过程了

—— 来自 SAMSUNG GT-N7100, Android 4.0.4上的 v2.0.4

用dos2unix 转一下 py脚本

sudo chmod 777 xxx.py

应该就算这个问题

[root@FOSDEV ~]# python –version

Python 2.6.6

[root@FOSDEV ~]# ./test.py

hello,world

好支威有

[root@FOSDEV ~]#

#!/usr/bin/python

# -*- coding: utf-8 -*-

print “hello,world”

print “好支威有”

utf-8 无bom  unix  格式 正常

转成dos 格式 就有错误提示

-bash: ./test.py: /usr/bin/python^M: bad interpreter: 没有那个文件或目录

好奇怪,难道bash做的这么弱,没法处理 \r\n ?

这是unix和dos的系统差异,不是bash弱的问题

—— 来自 HUAWEI MHA-AL00, Android 8.0.0上的 v2.0.4-play

讲道理,dos 用 \r\n 也是符合规范的

这又不是文本编码那样复杂的东西

做一下兼容处理 提升用户体验不好吗

大家都来讲道理嘛,linux下编辑好了py文件,你用记事本打来看看,都变成了什么鬼样子。

—-发送自 App for Android.

which python

—— 来自 OnePlus ONEPLUS A5010, Android 8.1.0上的 v2.0.4

1、拥抱python3

2、which python

Git本来就会自动转换啊,你为什么要在Windows下跑bash呢

我最后还是在shell脚本里改成

python xxx.py

而不是原来的

xxx.py

等一下,都用了print(“测试”),这代码就是python 3的吧?

linux下也有可能存在dos格式的文档呀

写代码又不是永远一个人

如果说文档的话应该不少,但是在linux下面有windows格式脚本的真的很少。毕竟#!/usr/bin/env python 在Windows下面是一点用都没有的

为何不直接Python3 加上py文件路径运行

DOS 和 Linux换行符问题

嗯 用python3也 解决不了问题 就是windows和linux 文本格式的问题

我ide里写完一般放上服务器时候都会转一下…算是踩得坑多了的经验吧

可以写个脚本把\r筛掉

调用的时候强行指定python bin的路径就是了

我一般直接用 centos 有两条命令 一个叫dos2unix 一个叫unix2dos 免得自己写脚本了



版权声明:本文为weixin_34791683原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。