加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

为什么使用/usr/bin/env会破坏我的Python导入?

发布时间:2020-12-16 21:54:29 所属栏目:Python 来源:网络整理
导读:OSX 10.8.2上的Python 2.7.3 我正在编写一个导入markdown模块的脚本.我使用#!/usr/bin/env python shebang来实现可移植性.当我通过./myscript.py arg1直接在shell中运行脚本时,脚本运行正常 当我从(登录)shell外部运行脚本时,例如通过AppleScript执行shell

OSX 10.8.2上的Python 2.7.3

我正在编写一个导入markdown模块的脚本.我使用#!/usr/bin/env python shebang来实现可移植性.当我通过./myscript.py arg1直接在shell中运行脚本时,脚本运行正常

当我从(登录)shell外部运行脚本时,例如通过AppleScript执行shell脚本“/path/to/myscript.py”&引用形式的arg1,它失败了

myscript.py",line 8,in 

我猜这可能是shebang的一个问题,所以我将shebang改为我的python位置#!/usr/local/bin / python,果然脚本运行正常.

所以我的问题有两个:

>为什么使用/usr/bin/env python会破坏我的导入?
>如何在不使用/usr/local/bin / python的情况下避免此问题?

最佳答案
#!/usr/bin/env python的意思是“在$PATH上找到python,好像shell正在寻找它,然后运行它.”所以,由于你得到不同的结果,你可能正在使用不同的Python.

要检查,看看运行/usr/local/bin / python和/usr/bin/env python是否给你相同的pythons.你也可以使用type -a python来查找$PATH上的每个python.在我的系统上,键入-a python给出:

python is /opt/local/bin/python
python is /usr/bin/python
python is /usr/local/bin/python

(第一个是由MacPorts安装的.)

无论如何,正如罗德里戈指出的那样,直接发射可能不会使用你期望的$PATH.这意味着使用/usr/bin/env无法正常工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读