代码之家  ›  专栏  ›  技术社区  ›  Cheok Yan Cheng

将模块加载到apache+mod wsgi中

  •  5
  • Cheok Yan Cheng  · 技术社区  · 15 年前

    我正在使用apache+mod wsgi。

    在我的httpd.conf中,在文件的末尾有以下附加行。

    LoadModule wsgi_module modules/mod_wsgi-win32-ap22py27-3.3.so
    WSGIScriptAlias / "C:/Projects/Folder/web/"
    <Directory "C:/Projects/Folder/web">
    AllowOverride None
    Options None
    Order deny,allow
    Allow from all
    </Directory>
    

    当我执行以下命令时 index.py Windows到中的脚本 http://localhost/script/index.py

    def application(environ, start_response):
        status = '200 OK' 
        output = 'Hello World!'
        response_headers = [('Content-type', 'text/plain'),
                            ('Content-Length', str(len(output)))]
        start_response(status, response_headers)
        return [output]
    

    工作得很好。

    但是,当我添加 import utils 在第一行 索引文件 我得到

    ImportError: No module named utils
    

    utils.py 与相同的目录 索引文件

    是否需要设置其他配置?

    我尝试@dan_waterworth提出的建议

    import sys, os
    sys.path.append(os.path.dirname(__file__))
    

    通过导入自己的模块,我不再出错。但是,当我导入通过“轻松安装”安装的模块时,会发生错误。

       File "C:/Projects/Folder/web/script\\connection.py", line 1, in <module>
         import psycopg2
       File "build\\bdist.win32\\egg\\psycopg2\\__init__.py", line 65, in <module>
         from psycopg2 import tz
     ImportError: cannot import name tz
    

    import psycopg2 如果此脚本作为独立应用程序执行,则不会出现问题。

    3 回复  |  直到 12 年前
        1
  •  6
  •   dan_waterworth    15 年前

    import sys, os
    sys.path.append(os.path.dirname(__file__))
    
    import utils
    

    sys.path.append([enter path here])
    

    import sys
    print sys.path
    
        2
  •  1
  •   Dan H    12 年前

    PassEnv PYTHONPATH
    WSGIPythonHome  C:/Python/Python26
    WSGIPythonPath  C:/Python/Python26;C:/myproject/PyLib
    

    SetEnv PYTHONPATH C:/your/paths/go/here;C:/and/here
    

        3
  •  0
  •   soulseekah    15 年前

    sys.path sys.modules sys.path.append