Tag:

在Docker中运行分离时,Python应用程序不会打印任何内容

我有一个在我的dockerfile中启动的Python(2.7)应用程序: CMD ["python","main.py"] main.py在启动时打印一些string,然后进入循环: print "App started" while True: time.sleep(1) 只要我用-it标志启动容器,一切都按预期工作: $ docker run –name=myapp -it myappimage > App started 之后我可以通过日志查看相同的输出: $ docker logs myapp > App started 如果我尝试运行与-d标志相同的容器,容器似乎正常启动,但我看不到任何输出: $ docker run –name=myapp -d myappimage > b82db1120fee5f92c80000f30f6bdc84e068bafa32738ab7adb47e641b19b4d1 $ docker logs myapp $ (empty) 但容器似乎仍然运行; $ docker ps Container Status … myapp up 4 minutes … […]

得到当前点,距离和方位的纬度/经度

给定经纬度的现有点,以(KM)和方位(以度数换算为弧度)的距离,我想计算新的纬度/经度。 这个网站一遍又一遍地出现,但我无法得到公式为我工作。 上面链接的公式是: lat2 = asin(sin(lat1)*cos(d/R) + cos(lat1)*sin(d/R)*cos(θ)) lon2 = lon1 + atan2(sin(θ)*sin(d/R)*cos(lat1), cos(d/R)−sin(lat1)*sin(lat2)) 以上公式适用于MSExcel,其中 – asin = arc sin() d = distance (in any unit) R = Radius of the earth (in the same unit as above) and hence d/r = is the angular distance (in radians) atan2(a,b) = arc tan(b/a) θ is the […]

如何dynamic添加/删除周期性任务到芹菜(celerybeat)

如果我有一个函数定义如下: def add(x,y): return x+y 有没有办法dynamic地添加这个函数作为芹菜PeriodicTask并在运行时启动它? 我想能够做一些像(伪代码): some_unique_task_id = celery.beat.schedule_task(add, run_every=crontab(minute="*/30")) celery.beat.start(some_unique_task_id) 我也想用(伪代码)之类的东西来dynamic地停止或删除这个任务: celery.beat.remove_task(some_unique_task_id) 要么 celery.beat.stop(some_unique_task_id) 仅供参考我不使用djcelery,它允许您通过djangopipe理员pipe理定期任务。

没有其他的Python三元运算符

是否有可能在Python的1行上做到这一点? if <condition>: myList.append('myString') 我尝试了三元运算符 myList.append('myString' if <condition>) 但我的IDE(MyEclipse)不喜欢没有别的。

定位球形多边形的质心(质心)

我正在试图找出如何最好地定位覆盖在单位球面上的任意形状的质心,input顺序(顺时针或反cw)顶点的形状边界。 顶点的密度沿着边界是不规则的,所以它们之间的弧长一般是不相等的。 由于形状可能非常大(半个半球),所以通常不可能简单地将顶点投影到平面上,并使用平面方法,详见维基百科(对不起,我不允许超过2个超链接作为新手)。 稍微好一点的方法是使用在球坐标系中操作的平面几何graphics,但是如果使用大的多边形,这种方法也会失败,正如这里很好地说明的那样。 在同一页上,“Cffk”突出介绍了一种计算球形三angular形质心的方法。 我试图实现这个方法,但没有成功,我希望有人可以发现这个问题? 我已经将variables的定义与文件中的类似,以便于比较。 input(数据)是经度/纬度坐标列表,由代码转换为[x,y,z]坐标。 对于每个三angular形,我已经任意固定一个点作为+ z极点,其他两个顶点由沿着多边形边界的一对相邻点组成。 代码沿边界步进(从任意点开始),依次使用多边形的每个边界段作为三angular形边。 为每个这些单独的球形三angular形确定一个子质心,并根据三angular形面积对它们进行加权,并将其相加以计算总的多边形质心。 运行代码时我没有遇到任何错误,但返回的总质心显然是错误的(我已经运行了质心位置明确的一些非常基本的形状)。 我还没有find任何明智的模式,在重心的位置返回…所以目前我不知道什么是错误的,无论是在math或代码(虽然,怀疑是math)。 下面的代码应该工作原样复制粘贴,如果你想尝试。 如果你已经安装了matplotlib和numpy,它会绘制结果(如果你不这样做,它将忽略绘图)。 您只需要将代码下方的经度/纬度数据放入一个名为example.txt的文本文件中即可。 from math import * try: import matplotlib as mpl import matplotlib.pyplot from mpl_toolkits.mplot3d import Axes3D import numpy plotting_enabled = True except ImportError: plotting_enabled = False def sph_car(point): if len(point) == 2: point.append(1.0) rlon = radians(float(point[0])) rlat = radians(float(point[1])) […]

在Python Scipy中的双样本Kolmogorov-Smirnovtesting

我无法弄清楚如何在Scipy中进行双样本KStesting。 在阅读文档scipy kstest之后 我可以看到如何testing分布与标准正态分布相同的情况 from scipy.stats import kstest import numpy as np x = np.random.normal(0,1,1000) test_stat = kstest(x, 'norm') #>>> test_stat #(0.021080234718821145, 0.76584491300591395) 这意味着在p值为0.76时,我们不能拒绝两个分布相同的零假设。 然而,我想比较两个分布,看看我是否可以拒绝零假设,他们是相同的,如: from scipy.stats import kstest import numpy as np x = np.random.normal(0,1,1000) z = np.random.normal(1.1,0.9, 1000) 并testingx和z是否相同 我试过这个天真的人: test_stat = kstest(x, z) 并得到以下错误: TypeError: 'numpy.ndarray' object is not callable 有没有办法在Python中做两样本KStesting? 如果是的话,我该怎么做呢? […]

使用urllib2进行POST调用而不是GET

在urllib2和POST调用中有很多东西,但是我遇到了一个问题。 我试图做一个简单的POST调用服务: url = 'http://myserver/post_service' data = urllib.urlencode({'name' : 'joe', 'age' : '10'}) content = urllib2.urlopen(url=url, data=data).read() print content 我可以看到服务器日志,它说,我正在做GET调用,当我发送数据参数到urlopen。 该库正在提出一个404错误(未find),这是GET调用是正确的,POST调用处理得很好(我也尝试在HTML表单中的POST)。 任何线索都会被折服

如何在不同的机器上安置芹菜工?

我是芹菜新手。我知道如何安装和运行一台服务器,但是我需要将这个任务分配给多台机器。 我的项目使用芹菜分配用户请求传递到一个Web框架不同的机器,然后返回结果。 我阅读文档,但没有提到如何设置多台机器。 我错过了什么?

Celery with RabbitMQ:AttributeError:'DisabledBackend'对象没有属性'_get_task_meta_for'

我正在运行芹菜教程的第一步 。 我们定义以下任务: from celery import Celery app = Celery('tasks', broker='amqp://guest@localhost//') @app.task def add(x, y): return x + y 然后调用它: >>> from tasks import add >>> add.delay(4, 4) 但是我得到以下错误: AttributeError: 'DisabledBackend' object has no attribute '_get_task_meta_for' 我正在运行芹菜工和rabbit-mq服务器。 奇怪的是,芹菜工作者报告这个任务是成功的: [2014-04-22 19:12:03,608: INFO/MainProcess] Task test_celery.add[168c7d96-e41a-41c9-80f5-50b24dcaff73] succeeded in 0.000435483998444s: 19 为什么这不起作用?

如何禁止在芹菜腌制序列化

Celery默认使用pickle作为任务的序列化方法。 正如常见问题中所述,这代表了一个安全漏洞。 Celery允许您使用CELERY_TASK_SERIALIZERconfiguration参数configuration如何序列化任务。 但这并不能解决安全问题。 即使任务使用JSON或类似的方式进行序列化,工作人员仍然会使用pickle序列化执行插入到队列中的任务 – 它们只是响应消息中的content-type参数。 因此,任何可以写入任务队列的人都可以通过编写恶意的pickle对象来有效地执行worker进程。 我怎样才能防止工作线程运行任务序列化与泡菜?