用于python脚本的shebang在pyenv virtualenv下运行

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

作为示例测试用例,我系统上的默认python(OSX)没有安装pandas. pyenv virtualenv venv_name确实如此.我尝试从virtualenv获取python可执行文件的路径.

$pyenv activate venv_name
(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

(venv_name) $python script.py # also works
success

什么是适当的shebang为此?理想情况下,我想要一些通用的东西,以便它指向我目前的venv所在的python.

解决方法:

我真的不知道为什么用完整路径调用解释器对你不起作用,我一直使用它,但如果你想使用你环境中的python解释器,你应该这样做:

#!/usr/bin/env python

这样您就可以在环境中搜索要使用的python解释器.

上一篇:前端小项目(一)| 电影院座位预定(html,css,js)


下一篇:pycharm连接远程python的开发环境