Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 谷歌应用引擎从父文件夹导入库_Google App Engine_Python Import_Google App Engine Python - Fatal编程技术网

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
,我已经多次看到它完全错误了。