小编Ale*_*all的帖子

如何在没有-A选项的情况下运行芹菜状态/花?

考虑一下这个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)

python redis celery docker flower

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

在Amazon S3上解压缩大型ZIP文件

我在一家处理非常大的CSV文件的公司工作.客户端通过filepicker将文件上载到Amazon S3 .然后,多个服务器进程可以并行读取文件(即从不同点开始)以处理它并将其存储在数据库中.可选地,客户端可以在上载之前压缩文件.

  1. 我是否正确ZIP格式不允许并行解压缩单个文件?也就是说,没有办法让多个进程从不同的偏移量读取ZIP文件(可能在块之间有一些重叠)并从那里流出未压缩的数据?

如果我是正确的,那么我想要一种方法来获取S3上的ZIP文件并生成一个解压缩的CSV,也在S3上.

  1. 亚马逊是否提供可以执行此任务的任何服务?我希望Data Pipeline可以完成这项工作,但它似乎有局限性.例如"CopyActivity不支持复制多部分Amazon S3文件"(源代码)似乎暗示我无法使用它解压缩大于5GB的任何内容.我对数据管道的理解非常有限,所以我不知道它对于这个任务有多适合,或者我认为它的位置.
  2. 是否有任何SaaS可以完成这项工作?

我可以编写代码来下载,解压缩和分段上传文件回S3,但我希望有一个高效,易于扩展的解决方案.AWS Lambda非常适合运行代码(以避免配置不需要的资源),但执行时间限制为60秒.此外,用例看起来如此简单和通用我希望找到一个现有的解决方案.

zip unzip amazon-s3 amazon-web-services

6
推荐指数
2
解决办法
9164
查看次数

如何在Django 1.10的新TEMPLATES设置中包含默认的TEMPLATE_CONTEXT_PROCESSORS

我正在将项目升级到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 django django-templates

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

Pylint未分组导入警告

在我的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,如何修改代码以删除此警告?

python pylint

6
推荐指数
2
解决办法
6614
查看次数

如何强制spark/hadoop忽略文件上的.gz扩展名并将其作为未压缩的纯文本读取?

我有以下代码:

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上,我不能简单地重命名它们而不复制整个文件.

gzip hadoop scala apache-spark

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

Docker Machine默认VM上的软件包管理器?

我正在使用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对我很有吸引力,但这开始看起来有点多了.

linux apt docker docker-machine

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

Boto3资源(如DynamoDB.Table)的类型注释

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'>,但似乎不可能静态获得该类型。

python amazon-web-services python-3.x aws-sdk boto3

5
推荐指数
3
解决办法
758
查看次数

'module'对象没有属性'svc'

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的新手,非常感谢他们的帮助

python svm python-2.7

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

将 JSON 从 Flask 传递到模板并解码 html 实体

所以我已经被困在这个问题上有一段时间了。我有一个 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 无法正确地通过可表示来解析,因为它包含&#34;That is the 实体值 双引号,但如果我检查源代码,它不应该出现这样的情况。html 页面不应该将其显示为". 这仅发生在脚本部分。不在标签中(将所有内容<p>打印为)。&#34;"

我有什么误解吗?

html python json character-encoding flask

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

如何在一个 python 程序下的两个端口上的两个线程/进程中运行两个烧瓶服务器?

我正在编写一个 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/时,结果可能是12不是始终为2.

使用multiprocessing.Process而不是Thread具有相同的结果。

这是如何发生的,我该如何避免?烧瓶/werkzeug/WSGI 是不可避免的吗?我喜欢 Flask 的简单性,理想情况下希望继续使用它。如果这是不可能的,那么我可以使用且不会干扰同时运行的任何其他 Web 服务器的最简单的库/框架是什么?如果可能,我还想使用线程而不是进程。

python multithreading wsgi werkzeug flask

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