Django 编译为 pyc 并运行服务器

问题描述 投票:0回答:1

好吧,我跑了

python -m compileall .

但是生成的文件位于 pycache

管理.cpython-311.pyc 和 urls.cpython-311

我的问题是当我跑步时

python manage.cpython-311.pyc runserver

我不断收到错误消息

  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1126, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1140, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'settings'

我不是最聪明的 Django 开发人员。但是,如果有人与我分享如何解决这个问题,我将不胜感激。

python django pyc
1个回答
0
投票

当您运行 Python 代码时 (并且它能够执行并且没有其他指示) 解释器会将导入编译为

.pyc
文件并将它们存储在
__pycache__
文件夹中。

在下次运行时,解释器将考虑这些文件,如果它们适合源文件,则使用它们而不是重复编译阶段。

文件

__pycache__
并不意味着可以直接运行,尽管您可以这样做。在您的情况下,从
__pycache__
运行文件会将导入库移动到那里,并且所有导入都将失败,无需额外调整。

compileall
调用将手动执行此编译步骤。它节省了一些执行时间。这在某些情况下很有帮助,例如将代码部署在大量容器中,预计这些容器的生命周期很短。在大多数部署中,其工作量并不差。

结论:运行源文件(

.py
)并让缓存机制在后台完成其工作。

© www.soinside.com 2019 - 2024. All rights reserved.