Google app engine 谷歌应用引擎从父文件夹导入库
因此,我的目录结构如下所示:Google app engine 谷歌应用引擎从父文件夹导入库,google-app-engine,python-import,google-app-engine-python,Google App Engine,Python Import,Google App Engine Python,因此,我的目录结构如下所示: \Project-Dir\ |- lib\ | |- flask\ | |- ... |- module1_dir\ | |- __init__.py | |- app.yaml | |- app.py | |- ... |- module2_dir\ | |- __init__.py | |- app.yaml | |- app.py | |- ... |- ... 内部app.py sys.path.insert(0, os.path.ab
\Project-Dir\
|- lib\
| |- flask\
| |- ...
|- module1_dir\
| |- __init__.py
| |- app.yaml
| |- app.py
| |- ...
|- module2_dir\
| |- __init__.py
| |- app.yaml
| |- app.py
| |- ...
|- ...
内部app.py
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../lib')))
我在同一根目录中有两个模块。它们一起部署到应用程序引擎。它们也共享相同的库。这些库都非常强大,所以我尝试将它们放在共享目录(lib)中
我正在从\Project Dir\
运行dev\u appserver.py
并传递两个.yamls。我的sys.path
设置得很好,可以包含lib\
目录。然而沙箱似乎固执地坚持认为lib\
中的库根本不存在
我肯定我只是错过了一些小东西,比如某个地方的配置更改。或者应用程序引擎真的完全不支持这样的设置吗
编辑:当我在
dev_appserver.py
之外运行导入时,导入工作正常。在遇到同样的问题后,我与谷歌支持工程师进行了交谈。不幸的是,GAE不支持这种设置
使用模块API时,模块1和模块2作为独立的自包含实例在单独的Python虚拟环境中运行。他们无法“看到”父目录的内容。修改sys.path没有什么区别
有两种解决方案:
(a) 通过将“lib”文件夹放在“module1_dir”和“module2_dir”中,复制您的“lib”文件夹
(b) 将模块文件直接放在根目录中。是否在python包中创建
\uuu init\uuu.py
?或者请显示您的总目录。以及如何设置您的sys.path
,我已经多次看到它完全错误了。