ImportError: Import by filename is not supported. (WSGI)

ImportError: Import by filename is not supported. (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 文件和代码本身。我试着环顾四周,找不到任何有用的东西。它也可能是神社,但我不确定。

PackageLoader 定义为:

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

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

查看 Jinja2 文档以更好地了解您应该为包名称提供的内容。