ImportError:不支持按文件名导入。 (WSGI)

时间:2016-09-09 19:18:35

标签: python jinja2 mod-wsgi

我现在不知道为什么我似乎从Apache24错误日志中得到以下错误:

    mod_wsgi (pid=9036): Exception occurred processing WSGI script 'C:/Apache24/htdocs/tools/ixg_dashboard/ixg_dashboard.wsgi'.
    Traceback (most recent call last):
    File "C:/Apache24/htdocs/tools/ixg_dashboard/ixg_dashboard.wsgi", line 242, in application
    env = Environment(loader=PackageLoader('C:\\htdocs\\tools\\ixg_dashboard\\ixg_dashboard', 'templates'))
    File "C:\\Python27\\lib\\site-packages\\jinja2\\loaders.py", line 224, in __init__
    provider = get_provider(package_name)
    File "C:\\Python27\\lib\\site-packages\\pkg_resources\\__init__.py", line 419, in get_provider
    __import__(moduleOrReq)
    ImportError: Import by filename is not supported.

.wsgi文件很长,但我会提供相关的代码部分。进口如下:

    import cgi, urlparse, jinja2, os
    from pymongo import MongoClient
    from sets import Set
    from jinja2 import Environment, PackageLoader

我认为问题可能存在的实际代码是:

   env = Environment(loader=PackageLoader('C:\htdocs\tools\ixg_dashboard\ixg_dashboard', 'templates'))
   table_template = env.get_template('table.html')
   print table_template.render()

代码是由以前在这里的人创建的,从来没有让它完全在服务器上工作但是能够让它在本地运行,这正是我想要做的。是否有可能问题出在Apache的httpd.config文件和代码本身。我试着环顾四周,找不到任何有用的东西。它也可能是jinja,但我不确定。

1 个答案:

答案 0 :(得分:0)

PackageLoader定义为:

  

class jinja2.PackageLoader(package_name,package_path ='templates',encoding ='utf-8')

所以第一个参数应该是包名,而不是路径。

检查Jinja2文档,以便更好地了解您应该为软件包名称提供的内容。