![](/img/trans.png)
[英]How do I associate files with the xml that references them in Python?
[英]How do I associate python with py files in bash
一个常见的问题是“如何使我的 python脚本可执行而无需在命令行上显式调用python?”,答案是chmod +x
它,然后在脚本开头添加#!/usr/bin/env python
。
那不是我要问的问题。
我想做的是告诉bash或python或负责文件处理的任何事物,以将所有设置了执行位的.py文件当作开始时是否具有shebang来对待。
我知道在Windows中可以做到这一点,显然是在Gnome中针对用例,您需要从GUI双击.py脚本。 我可能发誓我记得曾经听说过从shell指定处理程序的等效方法。
为什么我想知道如何执行此操作(如果确实可行):
谢谢。
你是说binfmt_misc吗?
binfmt_misc是Linux内核的功能,它允许识别任意可执行文件格式并将其传递给某些用户空间应用程序,例如模拟器和虚拟机。
因此,您要为其注册一个条目,因此每次您要执行.py
文件时,内核都会将其传递给/ usr / bin / python。
你可以尝试这样的事情
# load the binfmt_misc module
if [ ! -d /proc/sys/fs/binfmt_misc ]; then
/sbin/modprobe binfmt_misc
fi
if [ ! -f /proc/sys/fs/binfmt_misc/register ]; then
mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
fi
echo ':Python:E::py::/usr/bin/python:' > /proc/sys/fs/binfmt_misc/register
如果您使用的是基于Debian的发行版,则必须安装binfmt-support 。
您可以在/etc/binfmt.d/python.conf
添加:Python:E::py::/usr/bin/python:
,以便在重启后永久存在。
Rio6的答案是正确的。 几乎没有操作系统仅支持它。 您将需要binfmt,可以在此git地址从源代码自己编译它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.