Python 函数查找3个参数,但只给出2个参数。不知道问题出在哪里

Python 函数查找3个参数,但只给出2个参数。不知道问题出在哪里,python,django,Python,Django,当我试图解析django项目中的链接时,我遇到了一个错误页面。它告诉我find_umodule()函数包含3个参数,但只提供了2个参数。现在我明白了这意味着什么,但我找不到错误的来源。回溯指向一个视图,但我看不出代码有任何问题 以下是回溯: Environment: Request Method: GET Request URL: https://0.0.0.0/ai_stats/dash/development/ Django Version: 1.3.1 Python Vers

当我试图解析django项目中的链接时,我遇到了一个错误页面。它告诉我find_umodule()函数包含3个参数,但只提供了2个参数。现在我明白了这意味着什么,但我找不到错误的来源。回溯指向一个视图,但我看不出代码有任何问题

以下是回溯:

    Environment:


Request Method: GET
Request URL: https://0.0.0.0/ai_stats/dash/development/

Django Version: 1.3.1
Python Version: 2.7.5
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'django.contrib.admindocs',
 'apps.minisar',
 'apps.mock',
 'apps.actional',
 'apps.ai_stats',
 'apps.health',
 'apps.soap',
 'apps.directentry',
 'apps.toys',
 'apps.solutions']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/app/gaic/apps/ai_stats/views.py" in dashboard
  26.     return render_to_response('ai_stats/dashboard.html', locals())
File "/usr/lib/python2.7/site-packages/django/shortcuts/__init__.py" in render_to_response
  20.     return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "/usr/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
  181.         t = get_template(template_name)
File "/usr/lib/python2.7/site-packages/django/template/loader.py" in get_template
  157.     template, origin = find_template(template_name)
File "/usr/lib/python2.7/site-packages/django/template/loader.py" in find_template
  134.             source, display_name = loader(name, dirs)
File "/usr/lib/python2.7/site-packages/django/template/loader.py" in __call__
  42.         return self.load_template(template_name, template_dirs)
File "/usr/lib/python2.7/site-packages/django/template/loader.py" in load_template
  48.             template = get_template_from_string(source, origin, template_name)
File "/usr/lib/python2.7/site-packages/django/template/loader.py" in get_template_from_string
  168.     return Template(source, origin, name)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in __init__
  108.         self.nodelist = compile_string(template_string, origin)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in compile_string
  136.     return parser.parse()
File "/usr/lib/python2.7/site-packages/django/template/base.py" in parse
  239.                     compiled_result = compile_func(self, token)
File "/usr/lib/python2.7/site-packages/django/template/loader_tags.py" in do_extends
  214.     nodelist = parser.parse()
File "/usr/lib/python2.7/site-packages/django/template/base.py" in parse
  239.                     compiled_result = compile_func(self, token)
File "/usr/lib/python2.7/site-packages/django/template/defaulttags.py" in load
  1050.                 lib = get_library(taglib)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in get_library
  1007.             lib = import_library(taglib_module)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in import_library
  959.         if not module_has_submodule(app_module, taglib):
File "/usr/lib/python2.7/site-packages/django/utils/module_loading.py" in module_has_submodule
  15.         if finder.find_module(name):

Exception Type: TypeError at /ai_stats/dash/development/
Exception Value: find_module() takes exactly 3 arguments (2 given)
以及它引用的views.py文件:

from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse

import ai2

import logging
logging.basicConfig()
log = logging.getLogger(__name__)


def index(request):
    # ai2.refresh_cache()
    return render_to_response('ai_stats/index.html', locals())
    # return HttpResponseRedirect(reverse('apps.ai_stats.views.dashboard', kwargs={'env':ai2.PROD}))


def dashboard(request, env):
    ai2.refresh_cache()
    # env = ai2.PROD
    mf_error, mf_data, _ = ai2.AIStats().data_for_chart('most_failures', env=env)
    mc_error, mc_data, _ = ai2.AIStats().data_for_chart('most_calls', env=env)
    wp_error, wp_data, _ = ai2.AIStats().data_for_chart('worst_performing', env=env)
    error = (mf_error or '') + (mc_error or '') + (wp_error or '')
    cache_timestamp = ai2.data_cache['timestamp']
    return render_to_response('ai_stats/dashboard.html', locals())


def drill(request, env, chart):
    # env = ai2.PROD
    row_limit = int(request.GET.get('limit', 100))
    error, data, _ = ai2.AIStats().data_for_chart(chart, env=env, limit=row_limit)
    cache_timestamp = ai2.data_cache['timestamp']
    return render_to_response('ai_stats/drill_%s.html' % chart, locals())


def dash_data(request, env, chart):
    # env = ai2.PROD
    error, data, chart_type = ai2.AIStats().data_for_chart(chart, env=env, params=request.GET)
    r = render_to_response('ai_stats/%s.xml' % chart, locals())
    if chart_type == ai2.GRAPH_CHART:
        r['Content-Type'] = 'text/xml'
    return r


def pop(request, env, chart):
    pop_template = 'pop_mtd'
    if chart == 'all_mtd':
        pop_template = 'pop_all'
    ops_chart = '%s_ops' % chart
    return render_to_response('ai_stats/' + pop_template + '.html', locals())
以及URL.py:

import os
from django.conf.urls.defaults import *
from django.conf import settings

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

urlpatterns = patterns('',
    url(r'^media/(?P<path>.*)$',  'django.views.static.serve', {'document_root': os.path.join(settings.DJANGO_PROJECT_ROOT, 'ai_stats/media')}),
    url(r'^$', 'apps.ai_stats.views.index', name='index'),
    url(r'^dash$', 'apps.ai_stats.views.index', name='index'),
    url(r'^dash/(?P<env>(production|certification|uat|integration|development))/$', 'apps.ai_stats.views.dashboard'),
    url(r'^dash/(?P<env>(production|certification|uat|integration|development))/drill/(?P<chart>[a-z_]+)/$', 'apps.ai_stats.views.drill'),
    url(r'^dash/(?P<env>(production|certification|uat|integration|development))/pop/(?P<chart>[a-z_]+)/$', 'apps.ai_stats.views.pop'),
    url(r'^dash/(?P<env>(production|certification|uat|integration|development))/(?P<chart>[a-z_]+)/$', 'apps.ai_stats.views.dash_data'),
导入操作系统
从django.conf.url.defaults导入*
从django.conf导入设置
#取消注释下两行以启用管理员:
#从django.contrib导入管理
#admin.autodiscover()
urlpatterns=模式(“”,
url(r“^media/(?P.*)”,“django.views.static.service”,{“document_root”:os.path.join(settings.django_PROJECT_root,'ai_stats/media')),
url(r'^$','apps.ai_stats.views.index',name='index'),
url(r“^dash$”,“apps.ai_stats.views.index”,name='index'),
url(r'^dash/(?P(生产|认证| uat |集成|开发))/$,“apps.ai|u stats.views.dashboard”,
url(r'^dash/(?P(生产|认证| uat |集成|开发))/drill/(?P[a-z+)/$,'apps.ai|u stats.views.drill'),
url(r'^dash/(?P(生产|认证| uat |集成|开发))/pop/(?P[a-z+)/$,'apps.ai|u stats.views.pop'),
url(r'^dash/(?P(生产|认证| uat |集成|开发))/(?P[a-z+)/$,'apps.ai|stats.views.dash|u data'),

sys.meta_path
中有一个查找程序具有错误的方法签名。打开一个shell,迭代它以确定它是哪个。查找程序很可能是用python 3编写的,而不是用python 2编写的,python 2没有
find_模块
的可选
path
参数

问题的答案是卸载该软件包,或者(我建议)将项目的依赖项(包括Django)更新到最新版本,以及升级到python 3(如果可以的话)。显然,第二种选择会更加麻烦,但如果您坚持使用未维护的Django版本,您只会遇到更多这些问题


谢谢。升级到最新版本的django/python是我的最终目标,但我的时间紧迫,经验有限。我们的托管团队非常希望在服务器上运行该应用。该应用太旧了,目前正在生产环境中的django 1.0.3和python 2.5上运行我现在的目标是让它在一个新的RHEL7服务器上运行,这样他们就可以对旧的RHEL7服务器进行装饰。另外,你能提供关于你的第一段的更多细节吗?我在哪里找到sys.meta_路径,我到底要找什么?在
django/utils/module_load.py
中查看django的源代码,了解方法
module_有什么b模块
。你会发现抛出错误的那一行。
sys.meta_info
来自内置的
sys
。它是用
import sys
导入的。关于django 1.0.3和python 2.5,只需从头开始并重新构建它。启动一个新的生产服务器,在出现故障时咬紧牙关DNS所以,在升级Django版本的时候,我不能做太多的事情来帮助这个错误。我想让这工作在1.3.1和Python 2.7上,即使Django不在支持的版本附近,至少应该是兼容的。包裹,我想不出别的了。对不起