django模块已导入及python egg警告

0 投票
2 回答
968 浏览
提问于 2025-04-16 16:52

有没有人能帮我解决Django中的这些警告吗?

/usr/lib/python2.6/site-packages/simplejson-2.1.5-py2.6-linux-x86_64.egg/simplejson/_speedups.py:3: UserWarning: Module taggit was already imported from /var/www/html/matilah/taggit/__init__.py, but /usr/lib/python2.6/site-packages/django_taggit-0.9.3-py2.6.egg is being added to sys.path

Traceback (most recent call last):
 File "manage.py", line 11, in <module>
   execute_manager(settings)
 File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager
   utility.execute()
 File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 379, in execute
   self.fetch_command(subcommand).run_from_argv(self.argv)
 File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 261, in fetch_command
   klass = load_command_class(app_name, subcommand)
 File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 67, in load_command_class
   module = import_module('%s.management.commands.%s' % (app_name, name))
 File "/usr/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
   __import__(name)
 File "/usr/lib/python2.6/site-packages/haystack/__init__.py", line 154, in <module>
   handle_registrations()
 File "/usr/lib/python2.6/site-packages/haystack/__init__.py", line 151, in handle_registrations
   search_sites_conf = importlib.import_module(settings.HAYSTACK_SITECONF)
 File "/usr/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
   __import__(name)
 File "/var/www/html/matilah/search_sites.py", line 2, in <module>
   haystack.autodiscover()
 File "/usr/lib/python2.6/site-packages/haystack/__init__.py", line 106, in autodiscover
   app_path = importlib.import_module(app).__path__
 File "/usr/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
   __import__(name)
 File "/var/www/html/matilah/disqus/__init__.py", line 5, in <module>
   from django.utils import simplejson as json
 File "/usr/lib/python2.6/site-packages/django/utils/simplejson/__init__.py", line 111, in <module>
   import simplejson
 File "/usr/lib/python2.6/site-packages/simplejson-2.1.5-py2.6-linux-x86_64.egg/simplejson/__init__.py", line 111, in <module>

 File "/usr/lib/python2.6/site-packages/simplejson-2.1.5-py2.6-linux-x86_64.egg/simplejson/decoder.py", line 7, in <module>
 File "/usr/lib/python2.6/site-packages/simplejson-2.1.5-py2.6-linux-x86_64.egg/simplejson/scanner.py", line 10, in <module>
 File "/usr/lib/python2.6/site-packages/simplejson-2.1.5-py2.6-linux-x86_64.egg/simplejson/scanner.py", line 6, in _import_c_make_scanner
 File "/usr/lib/python2.6/site-packages/simplejson-2.1.5-py2.6-linux-x86_64.egg/simplejson/_speedups.py", line 7, in <module>
 File "/usr/lib/python2.6/site-packages/simplejson-2.1.5-py2.6-linux-x86_64.egg/simplejson/_speedups.py", line 4, in __bootstrap__
 File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 841, in resource_filename
   self, resource_name
 File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 1310, in get_resource_filename
   self._extract_resource(manager, self._eager_to_zip(name))
 File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 1332, in _extract_resource
   self.egg_name, self._parts(zip_path)
 File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 921, in get_cache_path
   self.extraction_error()
 File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 887, in extraction_error
   raise err
pkg_resources.ExtractionError: Can't extract file(s) to egg cache

The following error occurred while trying to extract file(s) to the Python egg
cache:

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

The Python egg cache directory is currently set to:

 /home/interworx/.python-eggs

Perhaps your account does not have write access to this directory?  You can
change the cache directory by setting the PYTHON_EGG_CACHE environment
variable to point to an accessible directory.

我不太确定“模块已经被导入”的错误和“无法提取PYTHON EGG”的错误有没有关系。

在我的WSGI文件中,我已经有这一行 os.environ['PYTHON_EGG_CACHE'] = rel('python-eggs'),我知道这行代码是有效的。否则WSGI就无法加载我的应用。所以我不知道该怎么处理这个问题。

谢谢!

2 个回答

0

你最开始遇到的“模块已经被导入”的问题,可能跟你现在的权限错误有关系。最好的办法是去修复一下 /home/interworx/.python-eggs 目录的权限和所有权设置(就像上面 Peter Rowell 说的那样)。

今天我在 Google Code University 找到了一些关于权限的很棒的复习资料。你有时间的话可以看看这个链接: http://code.google.com/edu/tools101/linux/ownership_permissions.html

我看了上面的评论,想分享一下我的想法:

我觉得问题可能是 .wsgi 文件没有及时设置环境变量。你能把你的 .wsgi 文件发上来吗?另外,你是怎么获取这些包的?是用脚本吗?还是通过 pip 手动安装的?

2

当你看到类似“也许你的账户没有权限写入这个目录?”这样的提示时,最好先做个简单的测试。你可以试着把目录改成“/tmp”(这个目录是所有人都可以写的),看看问题是否解决。如果这样可以正常工作,那么你就可以找一个更合适的目录,并确保你(或者服务器)对这个目录有写入权限。

更新:你选择先解决最早的错误信息是正确的。这里有一个小工具,Python模块转储,这是我几年前写的,用来追踪错误的模块包含问题。你可以尝试在初始化代码的关键点插入这个工具,看看能不能找到最早的导入发生在什么时候。

撰写回答