django.views.generic与pydoc的Python文档
当我运行命令时:django.views.generic与pydoc的Python文档,python,django,pydoc,Python,Django,Pydoc,当我运行命令时: pydoc django.views.generic 我得到一个错误: problem in django.views.generic - <class 'django.core.exceptions.ImproperlyConfigured'>: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the en
pydoc django.views.generic
我得到一个错误:
problem in django.views.generic -
<class 'django.core.exceptions.ImproperlyConfigured'>:
Requested setting DEFAULT_INDEX_TABLESPACE,
but settings are not configured. You must either define
the environment variable DJANGO_SETTINGS_MODULE or call
settings.configure() before accessing settings
django.views.generic中的问题
:
请求设置默认索引表空间,
但未配置设置。您必须定义
环境变量DJANGO_SETTINGS_模块或调用
在访问设置之前配置()
如何获取django.views.generic的pydoc文档?导入许多django的模块会引入依赖于django项目环境的其他模块。创建一个虚拟项目,并使用其设置
$ django-admin.py startproject dummy
$ cd ./dummy
$ DJANGO_SETTINGS_MODULE=dummy.settings pydoc django.views.generic
请注意最后一行,它将环境变量设置为settings.py文件的导入路径。通常,您不需要这个,因为manage.py和wsgi.py为您设置了它,但是pydoc对此一无所知
如果您已经有一个项目,那么显然可以跳过虚拟项目,只使用项目的设置
$ django-admin.py startproject dummy
$ cd ./dummy
$ DJANGO_SETTINGS_MODULE=dummy.settings pydoc django.views.generic
当使用较新版本的Django时,还需要在Django通常可用之前调用。将pydoc封装在脚本中,而不是直接调用pydoc
my_pydoc.py
import django
import pydoc
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'dummy.settings'
django.setup()
pydoc.cli()
虽然的答案对某些事情有效,但对我自己的应用程序无效,因为我得到了一个AppRegistryNotReady
异常。我发现我需要在我的应用程序文件中做一些广告曲棍球来让它工作:
import sys
importer = sys.modules['__main__'].__spec__
if importer.name == 'pydoc':
import django
django.setup()
最后,它至少对views.py
有效。其他文件可能需要其他解决方案。这感觉很脆弱并且依赖于版本,但它适用于Django 1.10.2和Python 3.5.2
sys.argv[0]
具有相同的信息,/usr/lib/python3.5/pydoc.py
,因此可以通过以下方式更简单、更可靠地完成:
import sys, os
if os.path.splitext(os.path.basename(sys.argv[0]))[0] == 'pydoc':
import django
django.setup()
在访问设置之前,必须定义环境变量DJANGO\u SETTINGS\u模块或调用SETTINGS.configure()
我应该在哪里定义它?或者如何从终端调用settings.configure()?