python导入(MySQLdb)和apache python_egg_cache的问题
Posted
技术标签:
【中文标题】python导入(MySQLdb)和apache python_egg_cache的问题【英文标题】:problem with python imports (MySQLdb) and apache python_egg_cache 【发布时间】:2011-08-06 08:35:19 【问题描述】:我在 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 缓存目录当前设置为:
/root/.python-eggs
也许您的帐户没有对该目录的写入权限?你可以 通过设置 PYTHON_EGG_CACHE 环境更改缓存目录 变量指向一个可访问的目录。
【问题讨论】:
【参考方案1】:看看trac's bug tracker 或this question。您应该能够以某种方式修复 apache 的环境(很可能以特定于发行版/操作系统的方式),或者只是升级 trac。
更新:该问题并非特定于 Trac/Genshii,它发生在每个在 apache 中运行并尝试安装 python egg 的 python 应用程序中。我使用 Trac 遇到了它并解决了编辑 Web 服务器环境的问题。 This wiki page 明确表示 apache 的 SetEnv
指令不起作用,您应该使用 PythonOption
。至于修改 Web 服务器的环境,我是在 FreeBSD 服务器上完成的(您只需在 /usr/local/etc/apache22/envvars.d
中添加一个包含您所内设的环境变量的脚本),我怀疑您可以在 Ubuntu 编辑 /etc/apache2/envvars
上实现相同的效果。如果您在另一个发行版上,只需检查您的 apache 的打包方式并采取相应措施。
【讨论】:
在我开始这个线程之前,我遵循了 PYTHON_EGG_CACHE 的指南,它没有工作。缓存的文件夹没有改变尽管错误消息的输出看起来很简单,但我认为没有安装 Genshi 或 Trac,至少我在我的服务器上找不到任何文件以上是关于python导入(MySQLdb)和apache python_egg_cache的问题的主要内容,如果未能解决你的问题,请参考以下文章
在使用 Python 2.7.2 和 MySQL 的 OS X 10.8.2(Mountain Lion)上导入 MySQLdb 失败 [重复]