在google云平台上部署python脚本
我正在研究如何在谷歌云平台上部署我的脚本。 我已经创建了一个包含在google云平台上部署python脚本,python,google-app-engine,google-cloud-platform,app.yaml,Python,Google App Engine,Google Cloud Platform,App.yaml,我正在研究如何在谷歌云平台上部署我的脚本。 我已经创建了一个包含script.py和/lib文件夹中所有库的目录或文件夹 我没有得到的是设置我的app.yaml运行script.py(python 2.7)并在需要时访问lib 我也不知道我是否需要制作requirements.txt,因为我使用的是第三方库 以下是我在script.py中导入的所有内容 import requests import re import mysql.connector from urlparse import ur
script.py
和/lib
文件夹中所有库的目录或文件夹
我没有得到的是设置我的app.yaml
运行script.py
(python 2.7)并在需要时访问lib
我也不知道我是否需要制作requirements.txt
,因为我使用的是第三方库
以下是我在script.py中导入的所有内容
import requests
import re
import mysql.connector
from urlparse import urlparse
from urlparse import urljoin
from bs4 import BeautifulSoup
另外,我的lib
中有BeautifulSoup、requests和mysql.connector。
我不知道其他的,我假设它们是python2.7内置的,因为我不能用pip安装它们
顺便说一下,我用的是Windows10
app.yaml
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /lib/requests
script: Scrape.app
handlers:
- url: /requests
script: Scrape.app
handlers:
- url: /mysql/connector
script: Scrape.app
handlers:
- url: /bs4/
script: Scrape.app
克朗·亚姆
cron:
- description: "Scrape"
url: /
schedule: every 10 mins
retry_parameters:
min_backoff_seconds: 2.5
max_doublings: 10
我会犯这样的错误
Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [9]
Application startup error:
/bin/sh: 1: Python: not found
回溯(最近一次呼叫最后一次):
文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第240行,在Handle中
handler=\u config\u handle.add\u wsgi\u中间件(self.\u LoadHandler())
文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第299行,在_LoadHandler中
处理程序,路径,err=LoadObject(self.\u处理程序)
LoadObject中的文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第85行
obj=\uuuuuuuuuuuuuu导入(路径[0])
文件“/base/data/home/apps/s~tribal-bonito-157700/20170302t182530.399552845921654287/scrap.py”,第3行,在
导入请求
ImportError:没有名为请求的模块
来自表中的脚本行:
脚本:指令必须是python导入路径,例如,
指向WSGI应用程序的package.module.app。脚本的最后一个组件:指令使用Python模块路径
模块中全局变量的名称:该变量必须是
WSGI应用程序,通常按惯例称为应用程序
注意:就像Pythonimport语句一样,每个子目录
这是一个包必须包含一个名为
我建议您花些时间浏览一下中的代码片段,您将看到一个简单应用程序的基本结构
requirements.txt
文件可用于指定要安装在lib
目录中的软件包列表,如下所示:
pip安装-r requirements.txt-t lib
但这不是绝对必要的,包也可以直接在pip
cmdline上显式指定。我可以在app.yaml
中设置何时运行代码吗?例如,每24小时应用程序引擎都会运行一次代码。哦,天哪,这是我偶然发现的另一个术语cron.yaml
。有什么想法可以添加到X-Appengine-Cron:true
,或者我做错了吗?花点时间在文档网站上,你需要先了解你的方位。检查左侧的导航栏,您将找到关于如何使用cron的指南、概念、教程、参考资料等的文章
Traceback (most recent call last):
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject
obj = __import__(path[0])
File "/base/data/home/apps/s~tribal-bonito-157700/20170302t182530.399552845921654287/Scrape.py", line 3, in <module>
import requests
ImportError: No module named requests