你如何修改的sys.path在谷歌的App Engine(Python)的?
-
23-09-2019 - |
题
我已经尝试添加以下行到我的处理程序脚本(main.py),但它似乎没有工作时:
sys.path.append( '子目录')
subdir
生活在我的根目录(即,包含一个app.yaml
)。
这似乎并没有工作,因为当我尝试导入模块住在subdir
,我的应用程序爆炸。
解决方案
1)确保您在__init__.py
空白subdir
文件。
1)用完整路径;是这样的:
import os
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), 'subdir'))
编辑:供应评论问答题更多信息。
作为尼克约翰逊演示可以放置在这三个行代码文件调用fix_path.py
。然后,在你的main.py
文件,所有其他进口之前做到这一点import fix_path
。 链接到使用这种技术一个测试的应用程序。
并且,是,需要__init__.py
文件;每文档:
当导入软件包,Python的 通过对目录搜索 sys.path中寻找包 子目录。
在
__init__.py
文件都需要 使Python视该目录为 一个包;这样做是为了 防止某些目录有一个共同的 名称,如字符串,从 无意中在有效模块 后来发生在模块搜索 路径。在最简单的情况下,__init__.py
可以只是一个空文件,但它也可以执行初始化 为包代码或设置__all__
变量,后面进行说明。
其他提示
它为我插入新的显示目录中的sys.path第一条目。
path_changer.py:
import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'libs'))
sys.path.insert(1, os.path.join(os.path.dirname(__file__), 'apps'))
app.py:
import path_changer
from google.appengine.ext.webapp.util import run_wsgi_app
from flask import Flask
import settings
app = Flask('myapp')
app.config.from_object('settings')
from website import views as website_views
run_wsgi_app(app)
不隶属于 StackOverflow