0

我在 php 调用 python 脚本时遇到问题,或者它调用脚本但在尝试导入 MySQLdb 时在某处停止

现在添加到我的用户 .bash_profile 之后,按照本指南如何修复开始出现与 PYTHON_EGG_CACHE 相关的错误的 Trac 安装?

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 缓存目录当前设置为:

 /root/.python-eggs

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

4

1 回答 1

0

看看trac 的错误跟踪器这个问题。您应该能够以某种方式(很可能以特定于发行版/操作系统的方式)修复 apache 的环境,或者只是升级 trac。

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

于 2011-04-15T13:37:11.867 回答