Остановить Python от создания файлов pyc в shebang [дубликат]

этот вопрос уже есть ответ здесь:

есть ли способ остановить создание python .pyc файлы, уже в shebang (или магическое число, если хотите) скрипта Python?

Не работает:

#!/usr/bin/env python -B

4 ответов


это возможно, поставив свой путь Python interperter непосредственно в she bang вместо использования env.

#!/usr/bin/python -B

конечно, это означает, что вы теряете некоторые преимущества переносимости использования env. Существует обсуждение этого вопроса с env на Википедия притон страницы. Они используют python в качестве одного из своих примеров env.


согласно странице руководства для env, вы можете пройти name=value для установки переменных среды. The PYTHONDONTWRITEBYTECODE переменная среды заставляет Python не писать .py [co] файлы (такие же, как -B флаг python). Итак, используя

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

следует сделать трюк.

EDIT:

Я проверил это с помощью простого скрипта Python:

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

затем

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

(но не test.pyc)


да, если и только если, мы предполагаем, что программа Python работает в несколько POSIX-совместимой системе (для /bin/ sh), это будет работать:

(улучшение на основе ввода от glglgl)

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

# The rest of the Python program follows below:

увы, нет. Материал shebang ограничен предоставлением исполняемого файла и одного параметра.

так env пытается выполнить python -B С указанным файлом в качестве одного аргумента вместо python С -B и текущий файл в качестве двух аргументов.

Я не вижу способа достичь желаемой цели.