小编Grz*_*sek的帖子

Spurious ImportErrors(模块导入子模块?)

我有一个问题,我真的不知道从哪里开始解决.也许它会敲响某人的钟声.

TLDR: Django应用程序崩溃,重启后运行但无法导入某些模块.再次重启时,一切都很好.

整个故事:

不同的应用程序(我们现在最多三个)在不同的Python(2.5.x,2.6.x和2.6.x)和Django版本(分别为1.1.0,1.2.5和1.3.0)上偶尔会出现虚假的ImportErrors .例如,其中一个应用程序通过在其中抛出ImportError开始使每个请求失败:

from django.contrib.gis.maps.google import GMarker, GEvent
Run Code Online (Sandbox Code Playgroud)

我们收集了strace输出,相关的块在下面(为了简洁和保护有罪,绝对路径被DIR取代).

stat64("DIR/django/contrib/gis/maps/google/GMarker", 0xf699ce3c) = -1 ENOENT (No such file or directory)
open("DIR/django/contrib/gis/maps/google/GMarker.so", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("DIR/django/contrib/gis/maps/google/GMarkermodule.so", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("DIR/django/contrib/gis/maps/google/GMarker.py", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("DIR/django/contrib/gis/maps/google/GMarker.pyc", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

(再一次是同样的事情s/GMarker/GEvent /)

重启过程后,一切运行顺利,同时运行:

python -c 'from django.contrib.gis.maps.google import GMarker'
Run Code Online (Sandbox Code Playgroud)

不产生任何错误.

GMarker和GEvent类实际上定义django.contrib.gis.maps.google.overlays并导入...maps/google/__init__.py:

from …
Run Code Online (Sandbox Code Playgroud)

python django import importerror

10
推荐指数
1
解决办法
501
查看次数

标签 统计

django ×1

import ×1

importerror ×1

python ×1