首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sys.path修改还是更复杂的问题?

Sys.path修改还是更复杂的问题?
EN

Stack Overflow用户
提问于 2010-08-30 18:01:43
回答 2查看 302关注 0票数 4

我在appengine上正确导入模块时遇到了问题。我的应用程序通常使用带有app-engine-patch的django,但这部分是仅使用webapp框架的任务队列。

我需要导入django设置以使应用程序正常工作。

我的脚本是这样开头的:

代码语言:javascript
复制
import os
import sys
sys.path.append('common/')
# Force Django to reload its settings.
from django.conf import settings
settings._target = None

# Must set this env var before importing any part of Django
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

我总是会收到这个错误,或者一些相关的错误:

代码语言:javascript
复制
<type 'exceptions.ImportError'>: No module named ragendja.settings_pre

因为settings.py文件以

代码语言:javascript
复制
from ragendja.settings_pre import *

我想我需要再次向sys.path添加ragendja,但是我尝试了几次都没有成功。

下面是我的目录:

代码语言:javascript
复制
project/
    app.yaml
    setting.py
    common/
        appenginepatch/
            ragendja/
                setting_pre.py
    myapp/
        script.py 

这只是一个sys.path问题吗?我需要如何用正确的语法修改它?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-30 21:33:06

App engine补丁在内部操作sys.path。后台任务绕过了该代码,因此您的路径将不能用于Django调用。您有两个选择:

  • 手动修复路径。app engine documentation (请参阅“处理导入路径操作”小节)建议将路径操作代码分解到一个模块中,如果可能,该模块可以通过任务对django代码的依赖关系导入。如果您可以将任务编写为纯python和/或google api调用,那么您就可以开始工作了。在你的例子中,这可能意味着重构你的设置代码。
票数 3
EN

Stack Overflow用户

发布于 2010-08-30 21:34:21

为什么不呢:

代码语言:javascript
复制
sys.path.append('common/appenginepatch')

因为这个目录里有ragendja吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3599387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档