假设您编写了一个 Python shell 脚本。它可能会以这样的方式开始:
#!/usr/bin/python
问题是,如果你经常使用virtualenv
这个调用是完全错误的。您实际上希望此脚本调用 virtualenv 的 python 二进制文件,如果它在此环境中,/usr/bin/python/
否则。就像您的外壳会决定一样,当您编写python
为外壳命令时。
你会如何写你的#!
台词来满足这个要求?
假设您编写了一个 Python shell 脚本。它可能会以这样的方式开始:
#!/usr/bin/python
问题是,如果你经常使用virtualenv
这个调用是完全错误的。您实际上希望此脚本调用 virtualenv 的 python 二进制文件,如果它在此环境中,/usr/bin/python/
否则。就像您的外壳会决定一样,当您编写python
为外壳命令时。
你会如何写你的#!
台词来满足这个要求?
改为使用#!/usr/bin/env python
。
该env
命令在当前查找二进制文件PATH
;激活您的虚拟环境会将您的 virtualenvbin/
目录添加到路径中,env
并将在那里找到您的 python 二进制文件而不是全局 python。
尝试:
#!/usr/bin/env python
...