社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

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

Parikshit Chalke • 4 年前 • 501 次点击  

首先我看到了所有与 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
 
501 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Jitendra Sanghani
Reply   •   1 楼
Jitendra Sanghani    5 年前

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

from __future__ import absolute_import

删除pycache并重新启动服务。