在PyDev中访问交互式Django shell

时间:2014-01-22 09:28:48

标签: python django eclipse shell pydev

我可以从命令行打开一个交互式shell,而不是从Eclipse里面的PyDev打开。点击Django --> Shell with django environment我得到以下输出:

import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))
C:\Python27\python.exe 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)]
PyDev console: using default backend (IPython not available).

from django.core import management;import carbon_factors.settings as settings;management.setup_environ(settings)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'module' object has no attribute 'setup_environ'

为了尝试解决这个问题,我已经将PyDev更新为3.2.0而没有更改输出。我正在使用Django 1.6。

我查看了here评论,该评论指出了我here。然而,接受的答案似乎已经内置到Django / PyDev中,因为它建议在manage.py中更改的行已经更改。

2 个答案:

答案 0 :(得分:9)

Django 1.6中已弃用

setup_environ。请参阅here

据我所知,PyDev已经将这种启动Django shell的方法硬编码到右键单击项目中 - &gt; “带有Django环境的shell”菜单项。这是PyDev需要解决的问题(希望通过使用该命令简化他们正在做的任何事情只是“python manage.py shell”!)我不相信他们的菜单命令当前调用manage.py,这是为什么其他答案对你不起作用。

选项1 作为一个hacky解决方法,将“从django.conf导入设置; settings.configure()”添加到Window-&gt; Preferences-&gt; PyDev-&gt; Interactive Console中的初始解释器命令。你仍会看到错误,但至少你会有你的设置。

选项2 在Window-&gt; Preferences-&gt; Interpreter-&gt; Environment选项卡中,添加一个环境变量“DJANGO_SETTINGS_MODULE”,其中包含Python虚线路径到您的设置文件(最后不包括'.py')。

答案 1 :(得分:1)

对于Django 1.10和Eclipse Neon。 关注Option 1 from andy

我的设置文件位于 myproject / config / settings / local.py 中。

转到:窗口 - &gt;偏好设置 - &gt; PyDev-&gt;交互式控制台 - &gt;初始命令 并将第一行替换为:

import os; os.environ['DJANGO_SETTINGS_MODULE'] = 'config.settings.local'; import django
if '1.10' in django.get_version():
    django.setup()