Форум сайта python.su
1
Собственно сабж. Ключ -B не помогает.
Просто раздражает куча этих файлов в рабочей директории, и для дебаг версии они не сильно нужны.
Офлайн
221
john_16@linux-home:/tmp/1> cat my_lib.py
class A(object):
def __init__(self, value):
self.value=value
def square(self):
return self.value**2
john_16@linux-home:/tmp/1> cat test.py
import my_lib
c=my_lib.A(5)
print c.square()
john_16@linux-home:/tmp/1>
john_16@linux-home:/tmp/1> ll
итого 8
-rwxr--r-- 1 john_16 users 107 марта 6 11:06 my_lib.py
-rwxr--r-- 1 john_16 users 46 марта 6 11:05 test.py
john_16@linux-home:/tmp/1> python -B test.py
25
john_16@linux-home:/tmp/1> ll
итого 8
-rwxr--r-- 1 john_16 users 107 марта 6 11:06 my_lib.py
-rwxr--r-- 1 john_16 users 46 марта 6 11:05 test.py
Офлайн
17
Еще варианты:
import sys
sys.dont_write_bytecode = True
Офлайн
1
Решил проблему добавление в файл .bashrc строку:
# отключаем создание .pyc файлов
export PYTHONDONTWRITEBYTECODE=True
Офлайн
0
а можно самостоятельно указать путь для .pyc?
Офлайн
33
Нет.
Если не нравится размещение pyc рядом с исходниками, начиная с версии 3.2 работает __pycache__ - отдельная директория внутри пакета. Она создается автоматом и туда помещаются все pyc-файлы.
Офлайн
0
я использую 3ю версию
и беда в том, что эта директория создается внутри каждой директории с .py файлом
пока полностью отключил генерацию .pyc файлов, но это мягко говоря извращение
через import hooks нет решения?
Офлайн
32
как вариант, можно запретить средствами ОС - запускать от пользователя у которого права только чтения на папку с исходниками.
Офлайн
0
это все костыли вроде PYTHONDONTWRITEBYTECODE
не хочется отказываться от ускорения при использовании кэша
но и не хочится устраивать мусорку в рабочих каталогах
Офлайн
568
web_pr
это все костыли вроде PYTHONDONTWRITEBYTECODEне хочется отказываться от ускорения при использовании кэшано и не хочится устраивать мусорку в рабочих каталогах
attrib +h /s *.pyc*
Офлайн