【问题标题】:Pycharm, starting script does not runPycharm,启动脚本不运行
【发布时间】:2016-11-15 18:05:57
【问题描述】:

根据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'>

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

【问题讨论】:

    标签: python django pycharm


    【解决方案1】:

    您的代码有问题。您正在使用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"
    

    【讨论】:

    • 我使用了 Pycharm 的默认代码。我的帖子被编辑以混淆代码的顺序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2021-07-31
    • 1970-01-01
    • 2016-08-23
    • 2016-05-23
    相关资源
    最近更新 更多