Pycharm,启动脚本不运行

时间:2016-11-15 06:04:04

标签: python django pycharm

根据official docsthis previous question,只需将代码放入设置中的起始脚本字段即可。我已经这样做了,但我的代码没有运行。我的起始脚本是:

import sys
import django 
import django_manage_shell
from www.models import *

print('Python %s on %s' % (sys.version, sys.platform))
print('Django %s' % django.get_version())
sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])
if 'setup' in dir(django):  
    django.setup()

django_manage_shell.run(PROJECT_ROOT)
print("test")
test = "test"

重新启动控制台后,应用程序模型不可用,没有"测试"看到了,test对象不存在。

但是,由于django已成功导入,因此其中一部分会运行:

In[3]: django
Out[3]: 
<module 'django' from '/home/emil/GP/env/lib/python3.5/site-packages/django/__init__.py'>

如何让控制台自动运行我输入的脚本?具体来说,我希望它能自动导入模型。

1 个答案:

答案 0 :(得分:0)

您的代码存在问题。您正在使用PROJECT_ROOT,但未将其设置为任何位置。您也应该在执行django.setup()

后导入模型
import sys
import django 
import django_manage_shell

print('Python %s on %s' % (sys.version, sys.platform))
print('Django %s' % django.get_version())
sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])
if 'setup' in dir(django):  
    django.setup()
PROJECT_ROOT = WORKING_DIR_AND_PYTHON_PATHS
django_manage_shell.run(PROJECT_ROOT)

from django.apps import apps

for _class in apps.get_models():
    globals()[_class.__name__] = _class
print("test")
test = "test"