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

标签 python macos bash enthought shebang

我已经用谷歌搜索并搜索了堆栈溢出的解决方案,但我似乎找不到任何方法来解决这个问题。基本上,这是我的问题:我正在尝试使用 Image/PIL Python 模块,它预装了 Enthought 的发行版,但不是默认的 OSX python 发行版。

请注意,PIL/Image 导入确实适用于 enthought shell。

我的家是

#!/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

最佳答案

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

虽然您可以完全按照上面的问题- self 回答中的方式进行操作,但将 hashbang 切换为

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

当您的 python 脚本数量增加时,您会开始感到困惑,您必须进行“大量搜索和替换”以确保所有脚本都指向正确的 python 版本。

所以建议确实是使用virtualenv 和它的包装姐妹mkvirtualenv

并且将 hashbang 留在你的 python 脚本中。

正如下面@shx2 所提到的,使用可移植 shebang 线

#! /usr/bin/env python

关于导入模块(并选择正确的解释器)的 Python shebang 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16503761/

相关文章:

Bash 脚本 : Tar not working properly

linux - 在用户 exand 键入时在命令行上填写命令

python - 重新排列 Pandas 数据框以创建二维评分矩阵

python - 字符串替换python

macos - GIt GUI(SourceTree、Github for Mac、Tower)应用程序显示所有已修改的文件

macos - 如何让 strace 以非 root 权限运行跟踪命令?

python - 在Python中使用callproc调用包含记录集合的存储过程

python - 模拟 timedelta.total_seconds()

objective-c - cocoa : dock like window

linux - 使用 AWK 将列添加到 TSV(选项卡式分隔文件)