Python3 __pycache__ 即使 PYTHONDONTWRITEBYTECODE=1 也会生成

ann*_*nne 6 python capistrano python-3.x

我想问一下是否有另一种方法可以禁用__pycache__服务器中的创建。

我的问题是,即使我已经将环境变量设置为 PYTHONDONTWRITEBYTECODE=1

我想禁用,__pycache__因为我只在部署中保留 5 个版本。这个缓存阻止了第 6 版的删除,因为缓存归 root 所有,只能通过 sudo 删除。

我正在使用 capistrano 进行部署。

谢谢您的答复!

cle*_*ens 14

您还可以通过sys.dont_write_bytecode在 Python 代码中禁用缓存使用:

import sys

sys.dont_write_bytecode = True

import first_module
from second_module import MyClass
...
Run Code Online (Sandbox Code Playgroud)

重要提示:您必须将这些行放在模块的每个导入之前,因为缓存文件的创建是由导入语句触发的。

  • @Nav:您必须将这些行放在模块的所有其他导入之前。请看我的笔记。希望这可以帮助 :) (3认同)

ann*_*nne 12

我已经解决了这个问题。export PYTHONDONTWRITEBYTECODE=1作品。pycache文件夹的生成在docker中(我也使用了docker)。我所做的是在 docker 里面,我有这个export PYTHONDONTWRITEBYTECODE=1所以它解决了这个问题。感谢您的帮助。