Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Django mod_wsgi导入恐怖_Python_Django_Apache_Mod Wsgi - Fatal编程技术网

Python 使用Django mod_wsgi导入恐怖

Python 使用Django mod_wsgi导入恐怖,python,django,apache,mod-wsgi,Python,Django,Apache,Mod Wsgi,我想在CentOS上将Django项目从测试服务器移动到Apache 2.2.15版。我使用[1]安装了mod_wsgi,并尝试使用[2]将我的项目装载为wsgi应用程序 我遵循Hello World示例[3],将测试wsgi.py文件放在与现有Django项目文件wsgi.py相同的目录中。例如,我可以通过wget访问 <VirtualHost *:80> DocumentRoot <abs_path>/myproject/myproject WSGIScr

我想在CentOS上将Django项目从测试服务器移动到Apache 2.2.15版。我使用[1]安装了mod_wsgi,并尝试使用[2]将我的项目装载为wsgi应用程序

我遵循Hello World示例[3],将测试wsgi.py文件放在与现有Django项目文件wsgi.py相同的目录中。例如,我可以通过wget访问

<VirtualHost *:80>
   DocumentRoot <abs_path>/myproject/myproject
   WSGIScriptAlias /wsgi  <abs_path>/myproject/myproject/test_wsgi.wsgi
</VirtualHost>
基于[6],我在wsgi.py中添加了python2.7站点包的路径:

# add the myproject project path into the sys.path
sys.path.append('<PATH_TO_MY_DJANGO_PROJECT>/myproject')
# add the python2.7 site-packages path to the sys.path
sys.path.append('<PATH_TO_python2.7>/Lib/site-packages')
我还在httpd.conf中添加了python2.7的路径:

WSGIPythonPath <PATH_TO_PROJECT>:<PATH_TO_python2.7>/Lib/site-packages
尽管如此,我还是得到了500个内部服务器错误:ImportError:没有名为django.core.wsgi的模块

有什么建议吗

[1]

[2]

[3]

[4]

[5]


[6]

去阅读实际的Django文档。在这里,您将看到设置Python模块搜索路径的要求。你不应该有做过那件事的证据


另外,不要将DocumentRoot设置为Django项目的父目录。您正在向安全问题敞开大门。更重要的是,因为您将Django应用程序安装在一个子URL上,这意味着远程用户现在可以从站点的根目录下载您的项目源代码,包括带有数据库密码的设置文件等。

查看您在/var/log/apache*中的日志。日志是否在django设置中设置?日志显示ImportError:没有名为django.core.wsgi的模块。试图通过附加到此链接中讨论的sys.path来寻址-。还没有奏效,但正在研究这一点。我没有安排主持人。谢谢,格雷厄姆。是我干的。在我上面的文章中详细阐述了:获取ImportError:其他线程中没有报告名为django.core.wsgi的模块。尝试使用您和其他人以前制定的推荐策略解决此问题。您指定的路径中是否确实有“Lib”而不是“Lib”?是否启用了SELinux?Apache运行时的用户是否可以访问/读取目录?明白了,这是3:python 2.7站点包的权限问题。解决了这个问题,它成功了。
# add the myproject project path into the sys.path
sys.path.append('<PATH_TO_MY_DJANGO_PROJECT>/myproject')
# add the python2.7 site-packages path to the sys.path
sys.path.append('<PATH_TO_python2.7>/Lib/site-packages')
WSGIPythonPath <PATH_TO_PROJECT>:<PATH_TO_python2.7>/Lib/site-packages