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