Py学习  »  Django

在django installed app中添加新应用程序会产生错误populate()对于IIS不可重入

Parikshit Chalke • 4 年前 • 486 次点击  

首先我看到了所有与 error populate() isn't reentrant 但我面临的问题是不同的。

我想先澄清的是:

  1. 我的django应用程序在 因特网信息服务器 只注册了我的应用程序 INSTALLED_APPS 在里面 settings.py 项目。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

'MyDjangoWebApp.app',]
  1. 当我在我的 已安装的应用程序 在里面 设置Py 它在Django工作得很好 本地服务器 (例如由pycharm创建和托管的服务器)
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

'Busisoft_Document_Extraction_Web.app',
// Newly added app which I installed through PIP
'widget_tweaks']

3.但当我主持同一个项目时 IIS服务器 ,它给了我

Error occurred while reading WSGI handler:
Traceback (most recent call last):
File "c:\server\MyDjangoWebApp\wfastcgi.py", line 791, in main
env, handler = read_wsgi_handler(response.physical_path)
File "c:\server\MyDjangoWebApp\wfastcgi.py", line 633, in 
read_wsgi_handler
handler = get_wsgi_handler(os.getenv("WSGI_HANDLER"))
File "c:\server\MyDjangoWebApp\wfastcgi.py", line 605, in 
get_wsgi_handler
handler = handler()
File "c:\server\MyDjangoWebApp\venv\lib\site- 
packages\django\core\wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "c:\server\MyDjangoWebApp\venv\lib\site- 
packages\django\__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "c:\server\MyDjangoWebApp\venv\lib\site- 
packages\django\apps\registry.py", line 81, in populate
raise RuntimeError("populate() isn't reentrant")
RuntimeError: populate() isn't reentrant

StdOut: 

StdErr:

有趣的是,如果我删除了额外的应用程序,i is会工作得很好。

我的web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
    <handlers>
        <add name="DjangoIISHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="c:\server\MyDjangoWebApp\venv\Scripts\python.exe|c:\server\MyDjangoWebApp\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
    </handlers>
</system.webServer>
<appSettings>
  <add key="PYTHONPATH" value="c:\server\MyDjangoWebApp" />
  <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
  <add key="WSGI_LOG" value="c:\server\MyDjangoWebApp\wfastcgi.log" />
  <add key="DJANGO_SETTINGS_MODULE" value="Busisoft_Document_Extraction_Web.settings" />
  <add key="WSGI_RESTART_FILE_REGEX" value=".*((\.py)|(\.config))$" />
</appSettings>

我的系统配置

  1. 视窗10
  2. IIS服务器10
  3. Python 3.5(32位)
  4. Django 2.1.7
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43451
 
486 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Jitendra Sanghani
Reply   •   1 楼
Jitendra Sanghani    5 年前

我过去有过类似的问题,它是在Ubuntu服务器上的。请检查视图文件中的导入。如果导入是相对导入(即from.models import mymodel),则在文件顶部添加以下行。

from __future__ import absolute_import

删除pycache并重新启动服务。