我最近开始在 PyCharm 中使用 Django 和 git。有时我在运行服务器时遇到问题,它显示了一些我修复的错误。为了解决这个问题,我应该每次手动删除 .pyc 文件。并再次运行服务器。每次编译源代码时,如何强制它两个覆盖 .pyc 文件?
感谢@jbat100 和@Leonardo.Z。我想到了。我通过 PYTHONDONTWRITEBYTECODE=1。它就像一种魔法。但遗憾的是我只能接受一个答案,我希望@jbat100 不会对我生气。
由于 Python 2.6 可以通过向 Python 解释器提供-B开关或在运行解释器之前设置PYTHONDONTWRITEBYTECODE环境变量来防止 Python 写入 .pyc 或 .pyo 文件。
此设置可用于 Python 程序作为sys.dont_write_bytecode variable
,并且 Python 代码可以更改该值以修改解释器的行为。通过:口译员更改
莱昂纳多的答案可能是您正在寻找的,但您也可以.pyc
使用外壳删除文件
find . -name "*.pyc" -exec rm -rf {} \;
还有一个Django 片段也可以做到这一点
import os
directory = os.listdir('.')
for filename in directory:
if filename[-3:] == 'pyc':
print '- ' + filename
os.remove(filename)
您还可以查看用于编译 python 源并具有强制重新编译选项的compileall实用程序。
我使用以下代码来实现:
import subprocess
subprocess.call('find . -name "*.py[co]" -delete', shell=True)
要将其用作manage.py 命令,您可以执行以下操作。
将此代码放在:<app_name>/management/commands/delete_pyc.py
from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
help = """Delete all .pyc/.pyo files"""
def handle(self, *args, **options):
import subprocess
subprocess.call('find . -name "*.py[co]" -delete', shell=True)
要运行:
python manage.py delete_pyc