【发布时间】:2025-11-26 07:35:02
【问题描述】:
我有这个问题:System A 运行 Ubuntu,需要 Python 2.6 来处理很多不同的事情。
我在System A 上单独安装了Python 2.7System B 本身具有Python 2.7。
我有一个 python 脚本BLAH,上面写着#!/bin/env python。
再往下,它执行另一个脚本SIGH,上面也写着:#!/bin/env python。
BLAH 需要在System A 或System B 上运行,并且它始终需要在Python 2.7 上运行
----
到目前为止,我的部分解决方案:
有一个包装脚本,首先尝试查看 which python 是否指向 Python 2.7
如果没问题,那么使用 python 的路径运行BLAH。
否则尝试 which python2.7 并使用该路径运行 BLAH ,并将该路径添加到 env PATH。
这个解决方案的问题是:
在 System A 上(单独安装了 Python 2.7)
当BLAH 执行时,由于我编写了包装脚本,它使用 Python 2.7 运行(到目前为止还可以......)
当BLAH 产生SIGH 时,SIGH 使用shebang 在路径中查找python 然后它遇到了麻烦,因为它在env 的PATH 中寻找python,它应该在寻找python2.7路径。
有没有干净的方法来处理这个问题?
提前致谢!
【问题讨论】:
-
你能导入,然后从 BLAH 运行 SIGH 吗?
-
我不确定您是否需要将从
which获得的路径添加到PATH--which实际上只会搜索包含在PATH中的路径。