Python - egg缓存提取错误 - 权限被拒绝 - Apache未识别SetEnv?
我正在尝试在一个红帽系统上设置Apache和mod_wsgi,以便运行Django,但遇到了一个让人头疼的错误:“权限被拒绝:'/home/pineg/.python-eggs'”的缓存提取错误。
我按照说明做了,把这行代码放在了最前面:
SetEnv PYTHON_EGG_CACHE /opt/tmp
在 /etc/httpd/conf/httpd.conf 文件中。
然后我重启了Apache:
>sudo /etc/init.d/httpd restart
但是我还是遇到了同样的错误(如下)。感觉Apache好像没有理会我的SetEnv设置。
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] The following error occurred while trying to extract file(s) to the Python egg
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] cache:
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561]
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] [Errno 13] Permission denied: '/home/pineg/.python-eggs'
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561]
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] The Python egg cache directory is currently set to:
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561]
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] /home/pineg/.python-eggs
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561]
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] Perhaps your account does not have write access to this directory? You can
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] change the cache directory by setting the PYTHON_EGG_CACHE environment
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] variable to point to an accessible directory.
3 个回答
0
哦,好吧,既然这样,我就告诉Python不要把它安装成一个麻烦的蛋:
>sudo python setup.py install --single-version-externally-managed --record=/opt/python/source/weird_egg_thing
2
我对Apache和Django的具体情况一无所知,但一般来说,
SetEnv PYTHON_EGG_CACHE /opt/tmp
这个命令并不是用来设置环境变量的,它只是把这个变量添加到了一个叫做environ
的字典里。这个字典是index.wsgi
文件中的application(environ, start_response)
函数需要接受的。
4
这个问题和解决办法在mod_wsgi的文档里有详细说明:
http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Access_Rights_Of_Apache_User