pip 安装GoogleAppEngineCloudStorageClient 时的<your_app_directory> 具体是什么?

What, specifically, is the <your_app_directory> when pip installing GoogleAppEngineCloudStorageClient?

按照安装说明 here 进行操作时,<your_app_directory> 中的 <your_app_directory> 具体是什么:

pip install GoogleAppEngineCloudStorageClient -t <your_app_directory/lib>

?

我试过:

  1. /应用程序文件夹
  2. 托管我在 GAE 上运行的 .py 文件的主文件夹
  3. 与venv子文件夹下的(2)相同

但是我得到:

ImportError: 没有名为 cloudstorage 的模块

如果我尝试:

import cloudstorage as gcd

和:

ImportError: 没有名为 lib.cloudstorage

的模块

如果我尝试:

import lib.cloudstorage as gcd

以上所有。

例如

>>> os.listdir("/applications/lib") 
['cloudstorage', 'GoogleAppEngineCloudStorageClient-1.9.15.0-py2.7.egg-info']
>>> import lib.cloudstorage 
Traceback (most recent call last):   
File "<stdin>", line 1, in <module> ImportError: No module named lib.cloudstorage
>>>

我不确定最后是不是这样做的,但在执行之后我不再收到导入错误:

sys.path.append('/applications/lib')

<your_app_directory> 是包含您的 app.yaml 文件的文件夹的路径。

您的 YAML 文件指定了一个包含您的 GAE handlers 的脚本文件。此脚本文件、YAML 文件和依赖项需要打包到文件夹中 upload.

我使用这个文件夹结构:

  • 应用/
    • app.yaml Note: script attribute will point to src.main.application
    • 源/
      • __init__.py
      • main.py Contains a variable called application
    • 我的包裹/
      • __init__.py
      • supermodule.py
      • othermodule.py
    • 库/
      • 云存储/
      • 其他库/
      • 等/

为了帮助 python 在子文件夹中查找模块,例如用法 import cloudstorage as gcs,以下代码在您的 main.py 文件中很有用:

import os
import sys
#sys.path.append(os.path.join(os.path.dirname(__file__), "lib"))
sys.path.append(os.path.join(os.path.join(os.path.dirname(__file__), ".."), "lib"))  # relative to main.py