我最近用git开始在PyCharm中使用Django。有时我遇到运行服务器的问题,它显示了我修复的一些错误。为了解决这个问题,我应该每次手动删除.pyc文件。并再次运行服务器。每当我编译源代码时,如何强制它两个覆盖.pyc文件?谢谢你的回答。
感谢@ jbat100和@ Leonardo.Z。我想到了。我通过了PYTHONDONTWRITEBYTECODE = 1。它起到了魔力的作用。但遗憾的是,我只能接受一个答案,希望@ jbat100不要生我的气。
答案 0 :(得分:5)
由于Python 2.6可以通过将 -B 开关提供给Python解释器,或者通过设置 PYTHONDONTWRITEBYTECODE 环境变量来阻止Python编写.pyc或.pyo文件在运行翻译之前。
此设置可作为sys.dont_write_bytecode variable
用于Python程序,Python代码可以更改值以修改解释器的行为。通过:Interpreter Changes
答案 1 :(得分:2)
Leonardo的anwer可能就是你要找的东西,但你也可以用shell删除.pyc
个文件
find . -name "*.pyc" -exec rm -rf {} \;
还有一个Django snippet
import os
directory = os.listdir('.')
for filename in directory:
if filename[-3:] == 'pyc':
print '- ' + filename
os.remove(filename)
您还可以查看用于编译python源的compileall实用程序,并提供强制重新编译的选项。
答案 2 :(得分:0)
我使用以下代码来实现:
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)
运行do:
python manage.py delete_pyc