编程语言
首页 > 编程语言> > python – shebang:使用相对于脚本路径的解释器

python – shebang:使用相对于脚本路径的解释器

作者:互联网

我尝试构建可以随处运行的脚本.为此,我使用一个自定义构建的python,它始终位于相对于脚本的父目录中.

通过这种方式,我可以将我的软件包加载到USB记忆棒上,无论硬盘安装在何处以及是否安装了python,它都可以在任何地方使用.

但是,当我使用时

#!../python

然后它只在从其目录调用脚本时才起作用,这当然是不可接受的.

有没有办法做到这一点,还是在当前的shebang机制中这是不可能的?

解决方法:

对于许多语言,this page上有一套健康的多行shebang脚本,例如:

#!/bin/sh
"exec" "`dirname $0`/python" "$0" "$@"
print copyright

如果你想要一行shebang,this answer(和问题)在细节中解释了这个问题,并建议在shebang中使用其他脚本的以下方法:

使用AWK

#!/usr/bin/awk BEGIN{a=ARGV[1];sub(/[a-z_.]+$/,"python",a);system(a"\t"ARGV[1])}

使用Perl

#!/usr/bin/perl -e$_=$ARGV[0];exec(s/\w+$/python/r,$_)

标签:python,shebang
来源: https://codeday.me/bug/20190930/1836653.html