When following the install instructions here, what, specifically, is the <your_app_directory>
in:
pip install GoogleAppEngineCloudStorageClient -t <your_app_directory/lib>
?
I have tried:
- /Applications folder
- the home folder hosting my .py files that I'm running on GAE
- same as (2) under the venv subfolder
However I'm getting:
ImportError: No module named cloudstorage
if I try:
import cloudstorage as gcd
and:
ImportError: No module named lib.cloudstorage
if I try:
import lib.cloudstorage as gcd
with all the above.
E.g.
>>> 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
>>>
<your_app_directory>
is the path to the folder containing your app.yaml
file.
Your YAML file specifies a script file containing your GAE handlers
. This script file, YAML file, and dependencies need to be packaged into a folder for upload.
I use this folder structure:
- app/
- app.yaml
Note: script attribute will point to src.main.application
- src/
__init__.py
- main.py
Contains a variable called application
- mypackage/
__init__.py
- supermodule.py
- othermodule.py
- lib/
- cloudstorage/
- otherlib/
- etc/
To help python find modules in sub-folders, like the usage import cloudstorage as gcs
, the following code is useful in your main.py
file:
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
I am not sure if this is what did it at the end, but I no longer get the import error after doing:
sys.path.append('/applications/lib')