Python - egg缓存提取错误 - 权限被拒绝 - Apache未识别SetEnv?

0 投票
3 回答
4883 浏览
提问于 2025-04-16 17:07

我正在尝试在一个红帽系统上设置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

撰写回答