I want to install libmagickwand-dev inside google app engine standard environment
sudo apt-get install libmagickwand-dev
is it possible to install a standard environment? or other environments?
package details: Installation
Not possible in the standard environment, in which you can only use language-specific libraries that can be installed by your language-specific installer (like pip for python).
But you can do that in the flexible environment. From Choosing an App Engine environment:
Runs in a Docker container that includes a custom runtime or source
code written in other programming languages.
See also Building Custom Runtimes.
Related
I was deploying an optical character recognition web application. However, I realized that one of the packages needed to be installed through apt-get rather than pip. I was wondering how I would go about doing this through google app engine? Just for reference, I would like to install:
sudo apt-get install tesseract-ocr
Have you tried to install pytesseract via pip and include it in you requirements.txt for the application you're planning to deploy on app engine (Standard or Flexible)?
If the utilization of the pytesseract package is not enough, you can try to deploy an App Engine Flex Custom Runtime service and specify the installation of this package in the Dockerfile for this service
I am building a RESTful API using Python 3.6, the Falcon Framework, Google App Engine, and Firebase Cloud Firestore. At runtime I am receiving the following error ...
File "E:\Bill\Documents\GitHubProjects\LetsHang-BackEnd\lib\google\cloud\firestore_v1beta1\_helpers.py", line 24, in <module> import grpc
File "E:\Bill\Documents\GitHubProjects\LetsHang-BackEnd\lib\grpc\__init__.py", line 22, in <module>
from grpc._cython import cygrpc as _cygrpc
ImportError: cannot import name cygrpc
When researching StackOverFlow, I found an article regarding an AWS Lambda deployment, but it suggests a solution based on Docker. Docker is not a viable solution for us. I also found an article off StackOverflow that suggests running "pip install grpcio". We did not without luck.
We build the App Engine dependencies using a requirements.txt file. This file has the following contents ...
falcon==1.4.1
google-api-python-client
google-cloud-firestore
firebase-admin
enum34
grpcio
We apply the requirements file using the command ...
pip install -t lib -r requirements.txt
The App Engine server is started with the command ...
dev_appserver.py .
The development environment is Windows 10.
You seem to be mixing up the GAE standard and flexible environments:
using Python 3.6 is only possible in the flexible environment (which, BTW, is fundamentally Docker-based)
installing app dependencies in the lib directory and using dev_appserver.py for local development are only applicable to the standard environment
Somehow related: How to tell if a Google App Engine documentation page applies to the standard or the flexible environment
Ok. I will write up my findings just in case there's another fool like me.
First, Dan's response is correct. I was mixing standard and flexible environments. I had looked up a method for using the Falcon Framework with App Engine; as it turns out, the only article uses the standard environment. So that's how I wound up using dev_appserver.py. My app, however, is Python 3.6 and has dependencies that prevent stepping down to 2.7.
To develop locally for the flexible environment, you simply need to run as you normally would. In the case of Falcon Framework, that means using the Waitress wsgi server.
I find that it is a good practice to build and use a Python virtual environment. You use the virtualenv command for that. At deployment time, Google builds a docker container for the app in the cloud. To reconstruct all the necessary Python packages, you have to supply a requirements.txt file. If you have a virtual environment, then the requirements file is easily produced using pip freeze.
I have a Flask-restful API(micro-service) written in python 2.7 using Google Cloud STANDARD environment, and dev_appserver.py(gcloud sdk) helps to run it locally.
Now, I plan to do three things:
Upgrade the code from Python 2.7 to Python 3.5
Google Cloud STANDARD environment to Google cloud FLEXIBLE environment
Question: but standard environment uses AppEngine library and methods, that don't work in flexible environment, so, can Google Cloud Client libraries solve the purpose?
Run locally and test the micro-service
Question: Please give suggestions to replace dev_appserver.py
There are a lot of differences between the environments. A lot of methods and libs from standard won't work in flex.
See here for more info:
https://cloud.google.com/appengine/docs/the-appengine-environments
https://cloud.google.com/appengine/docs/flexible/python/flexible-for-standard-users
https://cloud.google.com/appengine/docs/flexible/python/migrating
You can't use dev_appserver.py in flex environment. You will need to run Flask the regular way. e.g (locally) FLASK_APP=main.py FLASK_DEBUG=1 python -m flask run --port 8080
I've been struggling to find an online IDE which supports Go and Google App Engine. Codeenvy supports it using python, while Cloud9 runs python 2.6 (which isn't compatible with GAE), and the update doesn't work.
Is there any IDE that will allow me to develop and deploy Go to GAE?
Python 2.7.3 should be installable from command line in Cloud9 via c9pm install python27 (see also the github repo.
Koding comes with Go, Python2 & 3, and best of all gives you a normal Ubuntu VM with full root access! It will work great with Go and GAE :)
I've used Google App Engine, and as far as I know the only way to update my application files on Google's servers is to use the App Engine SDK. And as far as I know the App Engine SDK is a Mac or Windows package, which is not portable (requires installation on the local machine).
I need a portable version, or another way to update my application files on Google's servers using a Mac. I found this https://code.google.com/p/appengine-portable/ which purports to offer portable versions for Windows, but not Mac.
Is there a way for me to use the App Engine SDK on Mac without installing?
Is there any alternative way for me to update my application files on Google's servers?
This is not where you looking for, but have a look at this post: http://googleappengine.blogspot.nl/2012/07/develop-in-cloud-with-exos-cloud-ide.html
I am only talking about the Python SDK here. You haven't said which .
Just use the linux SDK, and run that on Mac or Windows. I haven't used mac. But I do appengine development on Windows and Linux and have never used the Launcher. Just follow the directions for unix on windows. (Well change your file paths and slashes ;-)
The python SDK and dev server is all pure python.
The Windows and OS X packages are just the the SDK and the GUI launcher. As far as I know the SDK is pure Python and portable. Either use the SDK that comes with installer or download the SDK alone.
The linux version on the documentation download page contains only the SDK, or get it on the Google App Engine googlecode project (it will be called google_appengine_x.x.x.zip):
https://code.google.com/p/googleappengine/downloads/list
Simply download the SKD, extract it somewhere (on my Mac, I link it to /usr/local/google_appengine because some script like nosegae expects it there, but it's not necessary). The SDK doesn't need to be installed, doesn't need to be in path. You can run appcfg.py from the SDK directory or using the absolute path.
Below is the Makefile I am using to run and upload an app (with make serve and make upload):
PYTHON=$(shell pwd)/venv/bin/python
GAE=/usr/local/google_appengine
APPSERVER=${GAE}/dev_appserver.py
APPCFG=${GAE}/appcfg.py
PORT=8080
SRC=./src
.PHONY: serve upload test
serve:
open "http://localhost:${PORT}"
${PYTHON} ${APPSERVER} --port=${PORT} ${SRC}
upload:
${PYTHON} ${APPCFG} --oauth2 update ${BUILD}
test:
cd ${SRC}; ${PYTHON} runtest.py