dba*_*nas 7 python bash shebang
这里发生了什么事?!
$ /usr/bin/env which python
/home/dbanas/.local/bin/python
$ /home/dbanas/.local/bin/python -V
Python 2.7.3 -- EPD_free 7.3-2 (64-bit)
$ /usr/bin/env python -V
Python 2.4.3
Run Code Online (Sandbox Code Playgroud)
我偶然发现了这一点,试图调试我的一个Python脚本,它使用了一个
#! /usr/bin/env python
第一行.我不明白它是如何可能的.
谢谢!-D b
我注意到'〜/ .local/bin/python'是一个链接,而不是一个可执行文件.那会以某种方式破坏'/ usr/bin/env ...'流吗?
也许,这是表达基本难题的一种更简洁的方式?:
$ env python -V
Python 2.4.3
$ python -V
Python 2.7.3 -- EPD_free 7.3-2 (64-bit)
Run Code Online (Sandbox Code Playgroud)
它只是不断获得好奇心和好奇心:
$ which python
/home/dbanas/.local/bin/python
$ python -c 'import sys; print sys.executable'
/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
最有可能发生的情况是您没有将PATH变量导出到环境中。在这种情况下,/usr/bin/env不会有一个PATH集合,并且它的execvp调用最终将搜索一小组默认目录(当然通常包括/usr/bin)。
要查看此内容(在 中bash):
$ export PATH
$ declare -p PATH # verify PATH is exported, denoted by the -x
declare -x PATH="<my usual path, omitted...>"
$ /usr/bin/env python -V # shows my own python build
Python 2.7.6
$ export -n PATH # un-export PATH
$ declare -p PATH
declare -- PATH="<my usual path, omitted...>"
$ /usr/bin/env python -V # shows the system (/usr/bin/python) version
Python 2.6.6
Run Code Online (Sandbox Code Playgroud)
因此,总而言之,请确保export PATHshell 点文件中的某个位置。
| 归档时间: |
|
| 查看次数: |
2373 次 |
| 最近记录: |