小编Vip*_*luv的帖子

Google 云存储 python 客户端 AttributeError: 'ClientOptions' object has no attribute 'scopes' 部署后发生

我正在将云存储与 App Engine Flex 结合使用。部署成功后,我突然开始收到此错误消息

错误发生在我的 Flask 应用程序中的这些行中。

from google.cloud import storage, datastore
client = storage.Client()
Run Code Online (Sandbox Code Playgroud)
File "/home/vmagent/app/main.py", line 104, in _load_db
    client = storage.Client()
  File "/env/lib/python3.6/site-packages/google/cloud/storage/client.py", line 110, in __init__
    project=project, credentials=credentials, _http=_http
  File "/env/lib/python3.6/site-packages/google/cloud/client.py", line 250, in __init__
    Client.__init__(self, credentials=credentials, client_options=client_options, _http=_http)
  File "/env/lib/python3.6/site-packages/google/cloud/client.py", line 143, in __init__
    scopes = client_options.scopes or self.SCOPE
AttributeError: 'ClientOptions' object has no attribute 'scopes'
Run Code Online (Sandbox Code Playgroud)

这与基于大量 SO 线程对 grpcio 和 google-api-core 以及 google-cloud-storage 软件包进行的重大升级有关。但是,我无法弄清楚这是在哪里发生的。

我的requirements.txt如下:

setuptools>=40.3
grpcio<=1.27.2
google-api-core<1.17.0
Flask

gevent>=0.13

gunicorn>=19.7.1
numpy>=1.18.0
numpy-financial …
Run Code Online (Sandbox Code Playgroud)

python python-3.x google-cloud-storage google-cloud-platform grpc-python

12
推荐指数
1
解决办法
4698
查看次数

增加运行Google灵活应用引擎延迟DeadlineExceededError代码的时间

作为API调用的一部分,我在Google App Engine上运行了一个功能.结构是这样的

import externalmod
...
...

@app.route('/calc_here')
def calc:
answer = externalmod.Method()

return answer
Run Code Online (Sandbox Code Playgroud)

函数externalmod是一个复杂的算法(不是数据存储区,不是urlfetch,只是纯python),它适用于桌面上的每种可能情况,但对于app引擎上的一些输入情况,当调用端点时会出现以下错误

{
 "code": 13,
 "message": "BAD_GATEWAY",
 "details": [
  {
   "@type": "type.googleapis.com/google.rpc.DebugInfo",
   "stackEntries": [],
   "detail": "application"
  }
 ]
}
Run Code Online (Sandbox Code Playgroud)

在查看https://cloud.google.com/appengine/articles/deadlineexceedederrors并进行以下讨论之后: 如何增加Google App Engine请求计时器.默认值为60秒

https://groups.google.com/forum/#!topic/google-appengine/3TtfJG0I9nA

我意识到这是因为如果任何代码运行超过60秒,App引擎将停止.我首先尝试根据Do Exception捕获DeadlineExceededError异常执行以下操作

from google.appengine.runtime import DeadlineExceededError
try:
   answer = externalmod.Method()
except DeadlineExceededError:
   answer = some_default
Run Code Online (Sandbox Code Playgroud)

但我得到的错误是没有模块google.appengine

然后意识到所有的文档都是针对标准环境的,但我使用的是灵活的环境,我认为这个appengine.runtime可能甚至不再存在当我这样做:

 try:
   answer = externalmod.Method()
 except :
   answer = some_default
Run Code Online (Sandbox Code Playgroud)

它工作,我开始捕捉一些DeadlineExceededErrors.但显然,我不能总是像这样捕获DeadlineExceededErrors.有时我会发现错误,有时候不会.我认为最好的方法是增加允许代码运行的时间,而不是仅仅捕获异常.

我尝试通过添加CPU来更改app.yaml文件:2但没有任何区别.

runtime_config:
python_version: 3
resources:
  cpu: 2
  memory_gb: 4
manual_scaling: …
Run Code Online (Sandbox Code Playgroud)

python-3.x google-app-engine-python google-flexible

5
推荐指数
1
解决办法
1507
查看次数

在pandas dataframe元素中明智有效地替换不需要的字符串

我有一个非常大的数据帧(数千x千),这里只显示5 x 3,时间是索引

                                  col1                col2             col3
time                                                                         
05/04/2018 05:14:52 AM             +unend           +unend                  0
05/04/2018 05:14:57 AM                 0                 0                  0
05/04/2018 05:15:02 AM            30.691             0.000              0.121
05/04/2018 05:15:07 AM            30.691             n. def.            0.108
05/04/2018 05:15:12 AM            30.715             0.000              0.105
Run Code Online (Sandbox Code Playgroud)

由于这些是来自其他设备(df是由它产生的pd.read_csv(filename)),因此数据帧而不是完全float类型现在最终会产生不需要的字符串,如+unendn. def..这些都不是古典+infinityNaN,这df.fillna()可能照顾了.我想替换字符串0.0.我看到了这些答案 Pandas替换了类型问题替换了pandas数据框中的字符串,虽然尝试做同样的事情,但是列或列是明智的,但不是元素.但是,在评论中,对于一般情况也有一些很好的提示.

如果我尝试做

mask = df.apply(lambda x: x.str.contains(r'+unend|n. def.'))
df[mask] =0.0
Run Code Online (Sandbox Code Playgroud)

我明白了 error: nothing to repeat

如果我做

mask = df.apply(lambda …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

1
推荐指数
1
解决办法
260
查看次数