我有一个运行我网站大部分内容的Google App Engine网络应用.但是,对于某些功能,我需要一台linux机器.我希望我的Google App Engine应用能够在某些事件中自动启动Google Compute Instance.
我了解您可以使用Compute Engine REST API添加Google Compute实例.但是,要访问Google Compute REST API,您需要使用OAuth2身份验证过程获取访问令牌.
如何以编程方式从Google App Engine中获取访问令牌?
似乎所有身份验证方法都需要显示一个窗口,因此您可以输入用户名和密码,这在Google App Engine中是不切实际的.
我想在一个应用程序中使用两个Python库(Google的Cloud Library及其Cloud SDK),但它们具有冲突的名称(它们都google在其基本导入名称中使用,并且不在内部使用相对导入).我怎样才能在一个应用程序中使用它们?
更改库的代码以使用正确的相对导入是不切实际的.另外,我知道我可以使用virtualenv从不同的python应用程序访问这些库,但是如何从同一个python应用程序中访问它们?
以下是导入的一些细节.当我从云库(我运行import google.cloud.datastore)导入模块时,该库中的另一个导入有一个例外:
>>> import libs.google.cloud.datastore
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\[ProjectDIR]\libs\google\cloud\datastore\__init__.py", line 52, in <module>
from google.cloud.datastore.batch import Batch
ImportError: No module named cloud.datastore.batch
Run Code Online (Sandbox Code Playgroud)
图书馆试图进行绝对导入,而不是相对导入.Google Cloud Library无法导入google.cloud.datastore.batch的原因google是因为已在SDK中定义,因此存在命名冲突:
>>> print google.__path__
['C:\\Program Files (x86)\\Google\\Cloud SDK\\google-cloud-sdk\\platform\\google_appengine\\google']
Run Code Online (Sandbox Code Playgroud)
由于Cloud Library使用绝对导入,并且该名称google已在SDK中定义,因此导入失败.
python google-app-engine virtualenv python-import google-cloud-platform
我正在使用djangoappengine.当我尝试创建新用户,验证该用户并将其登录时,我收到以下错误AttributeError: 'AnonymousUser' object has no attribute 'backend'.
我的代码很简单,看起来像:
user = User.objects.create_user(username, username, password)
user.set_password(password)
user.save()
user = django.contrib.auth.authenticate(username=username, password=password)
django.contrib.auth.login(request, user)
Run Code Online (Sandbox Code Playgroud)
我只在生产中遇到以下错误,只是偶尔出现:
web req_create: 'AnonymousUser' object has no attribute 'backend'
Traceback (most recent call last):
File "/base/data/home/apps/s~XXXXX/1.356802202883392818/XXXX/XXX.py", line 332, in req_create
login(request, user)
File "/base/data/home/apps/s~XXXXX/1.356802202883392818/django/contrib/auth/__init__.py", line 82, in login
request.session[BACKEND_SESSION_KEY] = user.backend
AttributeError: 'AnonymousUser' object has no attribute 'backend'
Run Code Online (Sandbox Code Playgroud)
我不确定,但我有一种不好的感觉,这个异常是由于高复制数据存储及其最终的一致性.我认为这样authenticate()可以保存用户值并login()进行查询,但用户值尚未传播到HRDS中.任何人都可以证实这是真的吗?如果是这样,它将如何修复?
python django google-app-engine django-nonrel djangoappengine
我知道您可以在仪表板或开发服务器控制台中查看当前排队和正在运行的任务.但是,有没有办法以编程方式获取该列表?文档仅描述如何向队列添加任务,而不描述如何列出和/或取消它们.
请在python中.
我通常使用制表符编写代码,但许多python库使用空格.Notepad ++是否有任何方法可以自动检测文件的格式,并在文件已经格式化时自动切换到使用空格?
顺便说一句,我知道如何改变Notepad ++的标签格式已经有了一个问题.但如果它根据当前文件的格式自动更改会更好.
我有两个排序的整数列表.我想分别从第一个和第二个列表中找到彼此相距一定距离的所有整数对.
天真的方法是检查每对,导致O(N ^ 2)时间.我确信有一种方法可以在O(N*logN)或更短的时间内完成.
在python中,天真的O(N ^ 2)方法如下:
def find_items_within(list1, list2, within):
for l1 in list1:
for l2 in list2:
if abs(l1 - l2) <= within:
yield (l1, l2)
Run Code Online (Sandbox Code Playgroud)
pythonic答案的额外点.
应用说明
我只是想指出这个小谜题的目的.我正在搜索文档,并希望在另一个术语的特定距离内找到一个术语的所有出现.首先,您可以找到两个术语的术语向量,然后您可以使用下面描述的算法来确定它们是否在彼此的给定距离内.
如何使用Python来近似给定文本字符串的字体宽度?
我正在寻找一个类似于以下原型的函数:
def getApproximateFontWidth(the_string, font_name="Arial", font_size=12):
return ... picas or pixels or something similar ...
Run Code Online (Sandbox Code Playgroud)
我不是在寻找任何非常严谨的东西,近似会很好.
这样做的动机是我在webapp的后端生成一个截断的字符串并将其发送到前端进行显示.大多数情况下琴弦是小写的,但有时琴弦全部都是大写的,因此它们非常宽.如果字符串没有正确分组,它看起来很难看.我想知道基于它们的近似宽度来截断字符串的程度.如果它关闭了10%这不是什么大问题,这是一个美容功能.
Elasticsearch在排名时将文档的长度考虑在内(他们称这个字段为规范化).默认行为是将较短的匹配文档排名高于较长的匹配文档.
无论如何在查询时关闭或修改字段规范化?我知道索引时间omit_norms选项,但我宁愿不重新索引所有内容来尝试这一点.
而且,我想尝试一些事情,而不是简单地关闭字段规范化.我想考虑字段长度,但不像弹性搜索目前那么重要.使用默认行为,文档的排名将比文档的排名高2倍.我想尝试排名和长度之间的非线性关系.
您如何使用正则表达式在新的Cloud Console中搜索Google App Engine日志?
这篇博客文章建议您只需要键入regex:my.*query即可搜索,但是在日志记录控制台中似乎不起作用。当我这样做时,它会自动更正为以下查询text:regex:my.*query。