在pyenv虚拟环境中运行的Python脚本中使用哪个shebang

15 浏览
0 Comments

在pyenv虚拟环境中运行的Python脚本中使用哪个shebang

当一个Python脚本应该从pyenv virtualenv中运行时,文件的正确shebang是什么?

举个例子,我系统(OS X)上的默认Python没有安装pandas。而pyenv virtualenv venv_name有安装。我试图从virtualenv中获取Python可执行文件的路径。

pyenv activate venv_name

which python

输出结果:

/Users/username/.pyenv/shims/python

所以我创建了我的例子script.py

#!/Users/username/.pyenv/shims/python
import pandas as pd
print 'success'

但是当我试图运行脚本(在'venv_name'中),我得到了一个错误:

./script.py

输出结果:

./script.py: line 2: import: command not found

./script.py: line 3: print: command not found

虽然直接从命令行运行该路径(在'venv_name'中)可以正常工作:

/Users/username/.pyenv/shims/python script.py

输出结果:

success

还有:

python script.py # 也可以运行

输出结果:

success

这个应该使用什么正确的shebang?理想情况下,我希望使用一个通用的shebang,这样它将指向当前venv的Python。

0