2

似乎随着频率的增加,我被运行过时代码的 pyc 文件所吸引。

这导致部署脚本每次都清理 *.pyc,否则部署似乎不会生效。

我想知道,长期运行的 WSGI 应用程序中的 pyc 文件有什么好处(如果有的话)?据我所知,唯一的好处是缩短了启动时间,但我无法想象它有那么重要——即使是这样,每次部署新代码时,你也不能真正使用旧的 pyc 文件。

这让我认为最佳实践是运行设置了 PYTHONDONTWRITEBYTECODE 环境变量的 WSGI 应用程序。

我弄错了吗?

4

1 回答 1

7

进行部署的最佳策略是将部署的文件写入新目录,然后使用符号链接或类似的方式在一次更改中交换代码库。这具有自动清除任何旧.pyc文件的附带好处。

这样,您将获得两全其美 - 干净和原子部署,以及.pyc您的 web 应用程序是否需要重新启动时的缓存。

如果您保留最后的N部署目录(按日期/时间命名它们很有用),您还可以轻松地“回滚”到以前部署的代码版本。如果您有多台服务器机器,您也可以部署到所有机器上,但要等到所有机器都获得新代码后再切换它们。

于 2012-10-26T06:16:29.153 回答