gpt4 book ai didi

python - Shebang 用于已编译的 Python 代码

转载 作者:行者123 更新时间:2023-11-28 21:56:13 25 4
gpt4 key购买 nike

我曾经在 Python 脚本顶部添加 shebang 行,

#!/usr/bin/python
...

然后我可以执行 my.py 文件,

chmod a+r my.py
./my.py

但编译成字节码后,脚本只能由python执行,shebang不再起作用。

python my.pyc

有没有办法让 shebang 可用于编译的 python 脚本?

./my.pyc

最佳答案

Shebang 仅适用于文本脚本,不适用于二进制文件。然而,您可以使用 binfmt_misc 直接执行 *.pyc 文件,如 this Python ML thread 中所报告的那样:

Linux, you can use binfmt_misc to make executables out of pyc code. Run:

import imp,sys,string
magic = string.join(["\\x%.2x" % ord(c) for c in imp.get_magic()],"")
reg = ':pyc:M::%s::%s:' % (magic, sys.executable)
open("/proc/sys/fs/binfmt_misc/register","wb").write(reg)

once on your Linux system (or, rather, at boot time), and all pyc files become executable (if the x bit is set).

In Debian, installing the binfmt-support package will do that for you.

(强调是我的,注意这将适用于所有 Debian 衍生产品,包括 Ubuntu。同样的解决方案也适用于 Fedora)。

关于python - Shebang 用于已编译的 Python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21825910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com