shell调用python权限不足_请教个shell脚本调用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 免得自己写脚本了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值