导入模块的Python shebang问题(并选择正确的解释器)

时间:2013-05-12 02:55:50

标签: python macos bash enthought shebang

我用Google搜索并搜索了堆栈溢出的解决方案,但我似乎无法找到解决此问题的方法。基本上,这是我的问题:我正在尝试使用Image / PIL Python模块,该模块预先安装了Enthought的发行版,但没有使用默认的OSX python发行版。

请注意,PIL / Image导入确实可以在enthought shell上运行。

我的shebang是

#!/usr/local/bin/python

有没有一种简单的方法来改变我正在使用的python版本?

非常感谢您的帮助。

编辑:我找到了解决方案。通过在bash中键入“which python”(不带引号),我找到了存储enthought发行版的目录。 (/ Library/Frameworks/Python.framework/Versions/Current/bin/python)对我来说。然后,我只需将hashbang更改为

#!/Library/Frameworks/Python.framework/Versions/Current/bin/python

2 个答案:

答案 0 :(得分:2)

是。 virtualenv是隔离python环境的可接受方式,因此您可以选择使用您想要的任何python版本。

虽然你可以完全按照你在上面的问题自我答案中所做的那样,将hashbang切换到

#!/Library/Frameworks/Python.framework/Versions/Current/bin/python

当你的python脚本数量增加而你必须做“大规模搜索和替换”以确保所有脚本指向正确的python版本时,你会开始发现令人困惑的事情。

因此建议确实使用virtualenv及其包装器姐妹mkvirtualenv

将hashbang留在你的python脚本中。

如下面@ shx2所述,使用便携式shebang线

#! /usr/bin/env python

答案 1 :(得分:1)

据我所知,最推荐/最便携的shebang系列是:

#! /usr/bin/env python