阻止Python在shebang中生成pyc文件

时间:2012-11-14 09:55:21

标签: python shell scripting pyc

有没有办法阻止python创建.pyc文件,已经在Python脚本中的shebang(或魔术数字)?

不工作:

#!/usr/bin/env python -B

4 个答案:

答案 0 :(得分:6)

可以将你的python interperter路径直接放在她的bang而不是使用env。

#!/usr/bin/python -B

当然这意味着你会失去使用env的一些便携性优势。有关wikipedia Shebang page的env的这个问题的讨论。他们使用python作为他们的env示例之一。

答案 1 :(得分:4)

是的,当且仅当我们假设Python程序在某个POSIX兼容系统(/ bin / sh)中运行时,这将起作用:

改进基于glglgl的输入)

#!/bin/sh
"exec" "python" "-B" "$0" "$@"

# The rest of the Python program follows below:

答案 2 :(得分:4)

根据env的手册页,您可以传递name=value来设置环境变量。 PYTHONDONTWRITEBYTECODE环境变量导致Python不写.py [co]文件(与-B标志相同的python)。所以使用

#!/usr/bin/env PYTHONDONTWRITEBYTECODE=1 python

应该做的伎俩。

编辑:

我用一个简单的Python脚本测试了这个:

#!/usr/bin/env PYTHONDONTWRITEBYTECODE=1 python
print 1

然后

$chmod +x test.py
$./test.py
1
$ls
test.py

(但不是test.pyc

答案 3 :(得分:3)

唉,不,不。 shebang的东西仅限于提供可执行文件和一个参数。

因此env尝试以给定文件作为一个参数执行python -B,而不是python-B和当前文件作为两个参数。

我没有找到实现目标的方法。