Mac安装python3,通过终端直接运行.py文件报错bad interpreter: Operation not permitted

事出mac系统自带的python是2.7版本的,但是我又希望使用新版的python3进行编程,于是我按照网上的教程安装了python3,但是装完之后我发现我无法使用终端直接运行.py文件。报错bad interpreter: Operation not permitted,折腾了一晚也没找到解决方案(好在今晚解决了。。。)将解决过程贴出来给大家参考一下。
解决过程如下:

我的python3是后来安装的,并没有安装在/usr/bin目录下所以不能通过
#!/usr/bin/env python3来获取python3的运行环境。先确认是不是运行环境错误导致的报错。
终端输入
which python3
显示
/usr/local/bin/python3
将shebang写成绝对路径
#!/usr/local/bin/python3
在终端通过./filename.py的方式运行发现还是报bad interpreter: Operation not permitted,但是这个shebang的写法是没问题的,原因可能是别的。

这时候我发现我的.py文件的图标好像有点问题
屏幕快照 2017-12-28 下午9.12.33.png

它的默认打开方式是xcode。

在终端输入指令查看这个文件的拓展属性
xattr -l test.py

屏幕快照 2017-12-28 下午9.21.10.png

发现com.apple.quarantine后面有一串长长的数,这个就是导致bad interpreter: Operation not permitted的原因,不同的打开方式会给文件加入不同的拓展属性,这个拓展属性会导致python的解释器解释失败。

解决方案

将.py文件的默认打开方式改成Python Launcher 3,双击test.py文件发现运行成功。证明shebang和代码都没有问题。然后再测试通过终端./test.py运行有没有问题。结果依旧报错bad interpreter: Operation not permitted,基本确定了是文件的拓展属性导致的解释错误。
使用指令删除这个文件的拓展属性
xattr -d com.apple.quarantine ./test.py
测试一下
./test.py
运行成功

感谢波哥大晚上帮我解决问题带我出坑,今晚能睡个好觉了!!!
5189D17CBE4225B3B08114D5A4185F4F.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.创建文件夹 !/bin/sh mkdir -m 777 "%%1" 2.创建文件 !/bin/sh touch...
    BigJeffWang阅读 10,198评论 3 53
  • 用 python 解释器来编程从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。 为此...
    chen_000阅读 543评论 0 3
  • 今天晚饭吃太饱拉着朋友四处溜达。走到足球场上忽然跑来一只狗狗朝着我们这边跑了过来。我有点怕就绕着朋友到处躲,我躲到...
    嘉欣妹阅读 207评论 0 0
  • 让我们一起,迎着朝阳奔跑 也许会跌倒,也许会受伤 但这都不重要 青春的馈赠哪次不带着青涩伤口? 我们在路上,前方是...
    无刺之猬Lola阅读 118评论 0 0
  • 想了半天,不知道如何命名。最简单真实的就是我想要表达的,所以直接命题《我有一个好婆婆》 ...
    陈鹤丹阅读 1,082评论 2 4