python导入(MySQLdb)和apache python_egg_cache的问题

时间:2011-04-15 13:28:35

标签: php python mysql apache python-egg-cache

我在php调用python脚本时遇到麻烦,或者调用脚本但在尝试导入MySQLdb时停在某处

现在添加到我的用户.bash_profile后,按照本指南How do you fix a Trac installation that begins giving errors relating to PYTHON_EGG_CACHE?

export PYTHON_EGG_CACHE /var/www/html/path/cache

和httpd.conf

   AddHandler mod_python
   SetEnv PYTHON_EGG_CACHE /var/www/html/path/cache

我仍然收到此错误消息,网络服务器仍尝试访问/root/.python-eggs 我无法在我的新文件夹中找到我导出的.python-eggs

Array
(
    [stdout] => 
    [stderr] => Traceback (most recent call last):
  File "/var/www/html/grndb/upscgenesearch/python/pythontest.py", line 4, in ?
    import MySQLdb
  File "build/bdist.linux-x86_64/egg/MySQLdb/__init__.py", line 19, in ?
  File "build/bdist.linux-x86_64/egg/_mysql.py", line 7, in ?
  File "build/bdist.linux-x86_64/egg/_mysql.py", line 4, in __bootstrap__
  File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 799, in resource_filename
    return get_provider(package_or_requirement).get_resource_filename(
  File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 1229, in get_resource_filename
    return self._extract_resource(manager, zip_path)
  File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 1249, in _extract_resource
    real_path = manager.get_cache_path(
  File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 880, in get_cache_path
    self.extraction_error()
  File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 846, in extraction_error
    raise err
pkg_resources.ExtractionError: Can't extract file(s) to egg cache

尝试将文件提取到Python egg时发生以下错误 缓存:

 [Errno 13] Permission denied: '/root/.python-eggs'

Python egg cache目录当前设置为:

 /root/.python-eggs

也许您的帐户没有此目录的写入权限?您可以 通过设置PYTHON_EGG_CACHE环境来更改缓存目录 变量指向可访问的目录。

1 个答案:

答案 0 :(得分:0)

查看trac's bug trackerthis question。您应该能够以某种方式修复apache的环境(最有可能以分发/操作系统的方式),或者只是升级trac。

更新 :问题不是特定于Trac / Genshii,它发生在apache内运行的每个python应用程序并尝试安装python egg。我使用Trac遇到了它并解决了编辑Web服务器环境的问题。 This wiki page明确表示apache的SetEnv指令不起作用,您应该使用PythonOption。至于修改Web服务器的环境,我在FreeBSD服务器上做了这个(你只需要在/usr/local/etc/apache22/envvars.d内添加一个环境变量的脚本),我怀疑你可以在Ubuntu编辑/etc/apache2/envvars上实现相同的目的。 。如果您在另一个发行版上,请检查您的apache是​​如何打包的并采取相应的行动。