考虑一下这个bash会话:
$ export DJANGO_SETTINGS_MODULE=web.settings
$ celery status -b redis://redis.businessoptics.dev:6379/1 -t 10
Error: No nodes replied within time constraint.
$ celery status -b redis://redis.businessoptics.dev:6379/1 -t 10 -A scaffold.tasks.celery_app
celery@worker.9e2c39a1c42c: OK
Run Code Online (Sandbox Code Playgroud)
为什么我需要这个-A
选项?据我所知,芹菜应该能够在redis上检测必要的元数据.
同样,如果我运行celery flower -b <redis url>
它表明它成功连接到redis但没有显示任何真正的工人/任务/队列,并显示几个消息,如'stats' inspect method failed
.再次,添加-A
使其工作.
我想在一个不包含任何代码或其依赖项的最小独立Docker容器中运行flower.像这样的几个回购提供了这种东西.那我该怎么办呢?链接的repo提供了许多选项,但无法指定-A
选项,这表明没有必要.
我是芹菜的初学者所以我可能会错过一些愚蠢的东西.我应该做些什么?
该scaffold.tasks.celery_app
模块看起来像这样:
from celery import Celery
from django.conf import settings
app = Celery()
app.config_from_object(settings)
Run Code Online (Sandbox Code Playgroud)
这些是涉及芹菜的Django设置:
{'BROKER_HEARTBEAT': 0,
'BROKER_TRANSPORT_OPTIONS': {'fanout_patterns': True,
'fanout_prefix': True,
'visibility_timeout': 172800},
'BROKER_URL': 'redis://redis.businessoptics.dev:6379/1',
'CELERYBEAT_SCHEDULE': …
Run Code Online (Sandbox Code Playgroud) 我在一家处理非常大的CSV文件的公司工作.客户端通过filepicker将文件上载到Amazon S3 .然后,多个服务器进程可以并行读取文件(即从不同点开始)以处理它并将其存储在数据库中.可选地,客户端可以在上载之前压缩文件.
如果我是正确的,那么我想要一种方法来获取S3上的ZIP文件并生成一个解压缩的CSV,也在S3上.
我可以编写代码来下载,解压缩和分段上传文件回S3,但我希望有一个高效,易于扩展的解决方案.AWS Lambda非常适合运行代码(以避免配置不需要的资源),但执行时间限制为60秒.此外,用例看起来如此简单和通用我希望找到一个现有的解决方案.
我正在将项目升级到Django 1.10,它的代码如下:
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP
TEMPLATE_CONTEXT_PROCESSORS = TCP + (
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.request',
)
Run Code Online (Sandbox Code Playgroud)
据我所知,这是使用以前版本的Django时的常见模式,以确保默认的上下文处理器.
在Django 1.10 TEMPLATE_CONTEXT_PROCESSORS
中删除了有利于TEMPLATES
设置,现在应该定义如下:
TEMPLATES = [
{
...,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
...
],
},
},
]
Run Code Online (Sandbox Code Playgroud)
如何TEMPLATES
定义设置以正确匹配第一个代码示例的行为,即确保始终包含默认上下文处理器?我应该手动包含django.conf.global_settings
之前的内容吗?Django 1.10是否在任何地方定义了默认值?是否有任何新的上下文处理器可能默认包含在内?
在我的python脚本 - youdao.py中,为了与python2和python3兼容,我导入了像这样的urlopen:
try:
# compatible for python2
from urllib import urlencode
from urllib2 import urlopen
except ImportError:
# compatible for python3
from urllib.parse import urlencode
from urllib.request import urlopen
Run Code Online (Sandbox Code Playgroud)
详见https://github.com/MintCN/youdao-python/blob/master/youdao_simple/youdao.py#L22
当您使用时pylint youdao.py
,您将看到ungrouped-imports warning
,如何修改代码以删除此警告?
我有以下代码:
val lines: RDD[String] = sparkSession.sparkContext.textFile("s3://mybucket/file.gz")
Run Code Online (Sandbox Code Playgroud)
URL结束,.gz
但这是遗留代码的结果.该文件是纯文本,不涉及压缩.然而,火花坚持将其作为GZIP文件阅读,这显然是失败的.如何让它忽略扩展并简单地将文件作为文本读取?
基于这篇文章,我尝试在不包含GZIP编解码器的各个地方设置配置,例如:
sparkContext.getConf.set("spark.hadoop.io.compression.codecs", classOf[DefaultCodec].getCanonicalName)
Run Code Online (Sandbox Code Playgroud)
这似乎没有任何影响.
由于文件在S3上,我不能简单地重命名它们而不复制整个文件.
我正在使用Docker Machine开发OSX.我使用快速启动终端让它创建default
极小的VM:
在OS X安装中,docker守护程序在名为default的Linux VM中运行.默认情况下是一个轻量级Linux VM,专门用于在Mac OS X上运行Docker守护程序.虚拟机完全从RAM运行,下载量小〜24MB,启动时间约为5秒.
我想安装dnsmasq,但这些说明都不起作用.我希望再次遇到这种问题,所以除了安装dnsmasq之外我想要一些工具,比如apt-get
能够轻松安装东西.由于命令很少,我不知道如何开始.我有curl
,wget
,sh
,git
,和其他非常基本的命令.我没有以下任何一项:
apt
apt-get
deb
pkg
pkg_add
yum
make
gcc
g++
python
bash
Run Code Online (Sandbox Code Playgroud)
我能做什么?我应该下载更完整的虚拟机,如Ubuntu吗?我的笔记本电脑不是很快,所以一个非常轻巧的VM对我很有吸引力,但这开始看起来有点多了.
该boto3
库提供了几种返回资源的工厂方法。例如:
dynamo = (
boto3
.resource('dynamodb')
.Table(os.environ['DYNAMODB_TABLE'])
)
Run Code Online (Sandbox Code Playgroud)
我想注释这些资源,以便可以更好地进行类型检查和完成,但是唯一可以找到的类型是from boto3.dynamodb.table import TableResource
。
当我添加该注释时:
dynamo: TableResource = (
boto3
.resource('dynamodb')
.Table(os.environ['DYNAMODB_TABLE'])
)
Run Code Online (Sandbox Code Playgroud)
batch_writer(self, overwrite_by_pkeys)
即使文档列出了其他几种,自动补全提供的唯一方法也是。
这是用作注释的错误类吗?在终端中检查该变量类型,我可以看到它是<class 'boto3.resources.factory.dynamodb.Table'>
,但似乎不可能静态获得该类型。
import pandas as pd
from sklearn import svm
### Read the CSV ###
df = pd.read_csv('C:/Users/anagha/Documents/Python Scripts/sampleData.csv')
df
from sklearn.cross_validation import train_test_split
train, test = train_test_split(df, train_size = 0.8)
train
test
x_column=['Userid','day_of_week','hour_of_day','minute_of_hour']
y_column = ['thermostat']
svc = svm.SVC()
model = svm.svc(kernel='linear', c=1, gamma=1)
Run Code Online (Sandbox Code Playgroud)
我收到错误AttributeError:'module'对象没有属性'svc'.尝试了很多技术,但没有一个是有效的.我是python的新手,非常感谢他们的帮助
所以我已经被困在这个问题上有一段时间了。我有一个 MongoDB,我查询并以 JSON 形式返回。
我这样做是通过:
bson.json_utils.dumps(list(all_exams.find(query))
Run Code Online (Sandbox Code Playgroud)
然后,我将其传递到 Flask 模板变量中,以便在 HTML 中的内联 js 脚本中使用。
<div id="results">
<table id="results-table">
</table>
<p>
{{results_json}}
</p>
</div>
<script type="text/javascript" charset="utf-8">
$('#results-table').dynatable({
dataset: {
records: {{results_json}}
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
问题是,在脚本中,JSON 无法正确地通过可表示来解析,因为它包含"
That is the 实体值 双引号,但如果我检查源代码,它不应该出现这样的情况。html 页面不应该将其显示为"
. 这仅发生在脚本部分。不在标签中(将所有内容<p>
打印为)。"
"
我有什么误解吗?
我正在编写一个 python 调试库,它在一个新线程中打开一个烧瓶服务器,并提供有关它正在运行的程序的信息。当被调试的程序不是 Web 服务器本身时,这很好用。但是,如果我尝试与另一个在调试模式下运行的 Flask 服务器同时运行它,事情就会中断。当我尝试访问第二台服务器时,结果在两台服务器之间交替。
下面是一个例子:
from flask.app import Flask
from threading import Thread
# app1 represents my debugging library
app1 = Flask('app1')
@app1.route('/')
def foo():
return '1'
Thread(target=lambda: app1.run(port=5001)).start()
# Cannot change code after here as I'm not the one writing it
app2 = Flask('app2')
@app2.route('/')
def bar():
return '2'
app2.run(debug=True, port=5002)
Run Code Online (Sandbox Code Playgroud)
现在,当我在浏览器中访问http://localhost:5002/时,结果可能是1
或2
不是始终为2
.
使用multiprocessing.Process
而不是Thread
具有相同的结果。
这是如何发生的,我该如何避免?烧瓶/werkzeug/WSGI 是不可避免的吗?我喜欢 Flask 的简单性,理想情况下希望继续使用它。如果这是不可能的,那么我可以使用且不会干扰同时运行的任何其他 Web 服务器的最简单的库/框架是什么?如果可能,我还想使用线程而不是进程。