我想问是否有另一种方法可以禁止在服务器中创建
__pycache__
。
我的问题是即使我已经将环境变量设置为
PYTHONDONTWRITEBYTECODE=1
它仍然会生成
我想禁用
__pycache__
,因为我只在部署中保留 5 个版本。该缓存阻止了第 6 版的删除,因为该缓存归 root 所有,只能通过 sudo 删除。
我正在使用 capistrano 进行部署。
感谢您的回复!
我已经解决了这个问题。
export PYTHONDONTWRITEBYTECODE=1
有效。 pycache
文件夹的生成是在docker中的(我也是用的docker)。我所做的是在docker内部,我有这个export PYTHONDONTWRITEBYTECODE=1
所以它解决了问题。谢谢你的帮助。
您还可以通过 sys.dont_write_bytecode:
禁用 Python 代码中的缓存使用import sys
sys.dont_write_bytecode = True
import first_module
from second_module import MyClass
...
重要提示:您必须将这些行放在之前彼此导入模块,因为缓存文件的创建是由导入语句触发的。
对于 Visual Studio Code 用户:如果设置:
python.testing.pytestEnabled
为 true,Visual Studio Code 似乎会忽略 PYTHONDONTWRITEBYTECODE=1
并在某些时候(例如保存文件)生成 __pycache__
。
对于WINDOWS用户:需要在环境变量中设置该变量才能永久解决。
撰写本文时已在 Windows 10 上进行测试。