如何在#中识别Python版本!使用环境变量

Mal*_*rus 1 python linux interpreter

我有一个问题是由我们的封装设计引起的.到目前为止,我们的许多脚本都是用bash编写的,因此#!/bin/bash总是很简单.

但是现在我们在python中重写我们的脚本有点困难了.我们提供了特定版本的python(以避免客户端安装环境中的版本差异,从而破坏我们的实现).因为python的特定版本存在于已安装的目录结构中,所以我需要路由到它.

不过我不认为#!语句可以接受来自执行文件的shell的环境变量(尝试并得到一个糟糕的解释器).

例如:

foo.py我有#!$dirloc/wherepythonlives/python

在bash shell中,我执行了文件并得到了错误的解释器.有没有办法将环境变量潜入该#!行?

或者我必须依赖明确的路径?我们希望在一个环境中支持我们软件的多个版本(可能意味着多个python版本),所以我希望以某种方式将Python !#语句保存在我们安装的目录级别中.

Gre*_*ill 5

一种常见的方法是使用该env程序:

#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

这将导致env查看PATH环境中的二进制调用python.