首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将模块加载到apache + mod-wsgi

将模块加载到apache + mod-wsgi
EN

Stack Overflow用户
提问于 2010-11-12 15:48:04
回答 3查看 6.2K关注 0票数 5

我使用的是Apache + mod-wsgi。

在我的httpd.conf中,我在文件的末尾添加了以下几行。

代码语言:javascript
复制
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>

当我通过http://localhost/script/index.py在Windows中执行以下index.py脚本时

代码语言:javascript
复制
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]

工作得很好。

但是,当我在index.py的第一行添加import utils时,我得到

代码语言:javascript
复制
ImportError: No module named utils

utils.pyindex.py的目录相同

是否有其他配置需要我设置?

我尝试了@dan_waterworth给出的建议

代码语言:javascript
复制
import sys, os
sys.path.append(os.path.dirname(__file__))

通过导入我自己的模块,我没有得到更多的错误。但是,当我导入通过easy_install安装的模块时,出现错误。

代码语言:javascript
复制
   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执行没有问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-12 15:53:24

我发现我必须添加几行代码来附加python路径。类似于:

代码语言:javascript
复制
import sys, os
sys.path.append(os.path.dirname(__file__))

import utils

对于第二部分,只需为导入目录添加额外的行。即:

代码语言:javascript
复制
sys.path.append([enter path here])

要查找导入目录,请在交互式python提示符中键入:

代码语言:javascript
复制
import sys
print sys.path
票数 6
EN

Stack Overflow用户

发布于 2013-07-16 23:25:34

其他答案集中在让脚本本身破坏自己的PYTHONPATH。另一种方法是找出正确的Apache设置,为Python和WSGI应用程序设置可行的路径。

我的conf文件中有以下内容:

代码语言:javascript
复制
PassEnv PYTHONPATH
WSGIPythonHome  C:/Python/Python26
WSGIPythonPath  C:/Python/Python26;C:/myproject/PyLib

如果你不想通过你的环境的PYTHONPATH,我认为你可以使用:

代码语言:javascript
复制
SetEnv PYTHONPATH C:/your/paths/go/here;C:/and/here

我建议你试一试。

票数 1
EN

Stack Overflow用户

发布于 2010-11-12 15:53:35

sys.pathsys.modules检查该目录是否实际上是作为模块目录添加的。如果不是,sys.path.append它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4162584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档