Joa*_*ban 6 python bash shell shebang python-3.x
我正在python3中开发一组脚本,因为我使用了以下命令:
#!/usr/bin/env python3
Run Code Online (Sandbox Code Playgroud)
一切正常,但是在执行了某些虚拟机的情况下,解释器的名称为python3.5。我希望能够在两个环境中都执行我的脚本,但是我不能更改虚拟机的文件系统(所以我放弃了诸如使从python3.5到python3的链接之类的解决方案)
我看着的人,env但找不到任何指定搜索模式或类似方式的方法。
我尝试alias在会话开始时设置一个指向正确的python解释器的设置,但env不使用它。
我独特的解决方案是调用我的脚本,说必须使用哪个解释器,但非常麻烦:
python3.5 myscript.py
Run Code Online (Sandbox Code Playgroud)
任何想法都欢迎!,谢谢!
无需引入单独的shell和python脚本,单个文件可以同时使用!
用以下顺序替换您的shebang行:
#!/bin/sh
# Shell commands follow
# Next line is bilingual: it starts a comment in Python, and is a no-op in shell
""":"
# Find a suitable python interpreter (adapt for your specific needs)
for cmd in python3.5 python3 /opt/myspecialpython/bin/python3.5.99 ; do
command -v > /dev/null $cmd && exec $cmd $0 "$@"
done
echo "OMG Python not found, exiting!!!!!11!!eleven" >2
exit 2
":"""
# Previous line is bilingual: it ends a comment in Python, and is a no-op in shell
# Shell commands end here
# Python script follows (example commands shown)
import sys
print ("running Python!")
print (sys.argv)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1575 次 |
| 最近记录: |