我正在使用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>
当我通过http://localhost/script/index.py在Windows中执行以下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]
工作得很好。
但是,当我在index.py
的第一行添加import utils
时,我得到
ImportError: No module named utils
utils.py
与index.py
目录相同
是否需要设置其他配置?
我试试“丹·沃特沃斯”的建议
import sys, os
sys.path.append(os.path.dirname(__file__))
通过导入自己的模块,我不会再出错。但是,当我导入通过easy_install安装的模块时,会发生错误。
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
如果此脚本作为独立应用程序执行,则不会有问题。
sys.path
和sys.modules
检查目录是否实际添加为模块目录。如果不是的话。另一个答案集中在让脚本本身弄坏自己的Python身上。另一种方法是找出正确的Apache设置,为Python和WSGI应用程序设置一个可行的路径。
我的conf文件中有这些:
如果你不想通过环境中的Python,我想你可以使用:
我建议你试一试。
我发现我必须添加几行来附加python路径。类似于:
在第二部分中,只需为导入目录添加额外的行。即:
要查找导入目录,请键入交互式python提示符:
相关问题 更多 >
编程相关推荐