Существует ли стандартное место для хранения файлов кэша функций в Python? - PullRequest
2 голосов
/ 28 марта 2019

У меня есть эти скрипты, которые выполняют много дорогих вычислений.Одна оптимизация, которую я делаю, - это оценить дорогую функцию в сетке, кэшировать сетку и интерполировать вызовы в сетке.Важно, чтобы файлы были записаны на диск, чтобы будущие сеансы могли извлечь выгоду из кэша.Когда этот скрипт был только для моего личного использования, я мог помещать кеш куда угодно.Теперь, когда я хочу включить его в пакет для более широкого распространения, я обнаружил, что у меня должен быть какой-то способ узнать, где хранится кеш-файл для пакета?Нужно ли принимать какие-то решения или есть некоторые процедуры, которым я должен следовать (например, позволить пользователю изменять каталог во время установки, во время выполнения и т. Д.)?

Редактировать: этот код также будет иметьфункции, основанные на интерполяции данных из других источников.Поэтому мне также понадобится место для их хранения, но мне нужно знать, где это стандартно, и как определить, где это находится в конкретной установке (что-то жестко запрограммированное во время установки, или модули Python могут определить, где они находятся).переустановлен во время выполнения?).Суть в том, что это местоположение должно быть постоянным, чтобы я понимал, что временных каталогов не должно быть.Следовательно, в идеале это должно быть сделано внутри структуры каталогов пакета или где-то в домашнем каталоге пользователя.Если в каталогах пакета, допустимо, если мне придется делать махинации с разрешениями, чтобы создать каталог, который пользователь может изменять.

1 Ответ

0 голосов
/ 28 марта 2019

Я хотел бы рассмотреть вопрос о создании именованного временного файла с префиксом, который может быть распознан вашими сценариями, чтобы этот файл можно было открыть в более позднем сеансе.создание файла будет выглядеть следующим образом:

tempfile.NamedTemporaryFile(prefix='myApp', delete=False)

В противном случае я по умолчанию установлю текущий рабочий каталог и предоставлю возможность установить папку во время выполнения с помощью argparse .

...