小编seq*_*oia的帖子

如何在创建matplotlib数字后释放内存

我有几个matlpotlib函数卷入了一些django-celery任务.

每次调用任务时,RAM都专用于python.不久之后,python占用了所有的RAM.

问题:我该如何释放这个记忆?

更新2 - 第二个解决方案:

我问过类似的问题,特别是有关内存锁定matplotlib错误的时候,但是我有一个很好的回答这个问题.clf(),.close()以及gc.collect()如果使用多进程运行在单独的进程中绘图功能,其内存会自动释放不需要一旦过程结束.

Matplotlib错误导致内存泄漏.我怎样才能释放那段记忆?

更新 - 解决方案:

这些stackoverflow帖子建议我可以使用以下命令释放matplotlib对象使用的内存:

.clf():在循环中绘图时,Matplotlib内存不足

.close():Python matplotlib:指定图形大小时未释放内存

import gc
gc.collect()
Run Code Online (Sandbox Code Playgroud)

以下是我用来测试解决方案的示例:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from pylab import import figure, savefig
import numpy as np
import gc      

a = np.arange(1000000)
b = np.random.randn(1000000)

fig = plt.figure(num=1, dpi=100, facecolor='w', edgecolor='w')
fig.set_size_inches(10,7)
ax = fig.add_subplot(111)
ax.plot(a, b)

fig.clf()
plt.close()
del a, b
gc.collect()
Run Code Online (Sandbox Code Playgroud)

python memory-leaks numpy matplotlib

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

Numpy Array到base64并返回到Numpy Array - Python

我现在试图弄清楚如何从base64数据中恢复numpy数组.这个问题和答案表明它是可能的:在Python之外读取numpy数组但是没有给出一个例子.

以下面的代码为例,如果我知道dtype和数组的形状,如何从base64数据中获取Numpy数组?

import base64
import numpy as np

t = np.arange(25, dtype=np.float64)
s = base64.b64encode(t)
r = base64.decodestring(s)
q = ????? 
Run Code Online (Sandbox Code Playgroud)

我想要一个python语句将q设置为dtype float64的numpy数组,因此结果是一个与t相同的数组.这是数组编码和解码的样子:

>>> t = np.arange(25,dtype=np.float64)
>>> t
array([  0.,   1.,   2.,   3.,   4.,   5.,   6.,   7.,   8.,   9.,  10.,
    11.,  12.,  13.,  14.,  15.,  16.,  17.,  18.,  19.,  20.,  21.,
    22.,  23.,  24.])
>>> s=base64.b64encode(t)
>>> s
'AAAAAAAAAAAAAAAAAADwPwAAAAAAAABAAAAAAAAACEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAGEAAAAAAAAAcQAAAAAAAACBAAAAAAAAAIkAAAAAAAAAkQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAqQAAAAAAAACxAAAAAAAAALkAAAAAAAAAwQAAAAAAAADFAAAAAAAAAMkAAAAAAAAAzQAAAAAAAADRAAAAAAAAANUAAAAAAAAA2QAAAAAAAADdAAAAAAAAAOEA='
>>> r = base64.decodestring(s)
>>> r
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x08@\x00\x00\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x00\x00\x14@\x00\x00\x00\x00\x00\x00\x18@\x00\x00\x00\x00\x00\x00\x1c@\x00\x00\x00\x00\x00\x00 @\x00\x00\x00\x00\x00\x00"@\x00\x00\x00\x00\x00\x00$@\x00\x00\x00\x00\x00\x00&@\x00\x00\x00\x00\x00\x00(@\x00\x00\x00\x00\x00\x00*@\x00\x00\x00\x00\x00\x00,@\x00\x00\x00\x00\x00\x00.@\x00\x00\x00\x00\x00\x000@\x00\x00\x00\x00\x00\x001@\x00\x00\x00\x00\x00\x002@\x00\x00\x00\x00\x00\x003@\x00\x00\x00\x00\x00\x004@\x00\x00\x00\x00\x00\x005@\x00\x00\x00\x00\x00\x006@\x00\x00\x00\x00\x00\x007@\x00\x00\x00\x00\x00\x008@'
>>> q = np.array( ????
Run Code Online (Sandbox Code Playgroud)

我问的原因是因为我正在开发一个项目,我想在一个由django驱动的应用程序中的MySQL数据库中存储很多Numpy数组.

使用这个django片段,我可以在文本字段中存储base64数据:http://djangosnippets.org/snippets/1669/ …

python arrays django base64 numpy

29
推荐指数
2
解决办法
2万
查看次数

MongoDB作为时间序列数据库

我正在尝试将mongodb用于时间序列数据库,并且想知道是否有人可以建议如何最好地为该场景设置它.

时间序列数据与股票价格历史非常相似.我收集了来自不同机器的各种传感器的数据集.有十亿个时间戳的值,我想问下面的问题(最好是从数据库而不是应用程序级别):

  1. 对于给定的一组传感器和时间间隔,我希望按时间顺序排列在该间隔内的所有时间戳和传感器值.假设所有传感器共享相同的时间戳(它们都是同时采样的).

  2. 对于给定的一组传感器和时间间隔,我希望按时间顺序排列在给定间隔内的每个第k项(时间戳和相应的传感器值).

有关如何最好地设置并实现查询的任何建议?

谢谢你的建议.

time-series mongodb

24
推荐指数
2
解决办法
2万
查看次数

从使用Scipy.io.loadmat加载的.mat文件访问数组内容 - python

更新:这是一个很长的问题归结为,有人可以向我解释numpy数组类吗?我在下面回答了我自己的问题.

我正在开发一个项目,将数据从matlab导入到mysql数据库,其内容将通过django网站提供.我想使用Scipy.io.loadmat将matlab中的信息转换为我可以在python中使用的表单,以便我可以使用django api将数据输入到数据库中.

我的问题是我无法使用scipy.io.loadmat导入的数据.它以几个嵌套数组的形式加载,一些变量名似乎丢失了.

这是我为试验创建的测试结构的matlab代码:

sensors.time = [0:1:10].';
sensors.sensor1 = {};
sensors.sensor1.source_type = 'flight';                          
sensors.sensor1.source_name = 'flight-2';                       
sensors.sensor1.channels = {};
sensors.sensor1.channels.channel1.name = '1';                    
sensors.sensor1.channels.channel1.local_ori = 'lateral';         
sensors.sensor1.channels.channel1.vehicle_ori = 'axial';         
sensors.sensor1.channels.channel1.signals = {};
sensors.sensor1.channels.channel1.signals.signal1.filtered = 'N';
sensors.sensor1.channels.channel1.signals.signal1.filtered_description = 'none'; 
sensors.sensor1.channels.channel1.signals.signal1.data = sin(sensors.time)+0.1*rand(11,1); 

>> sensors
      time: [11x1 double]
      sensor1: [1x1 struct]
>> sensors.sensor1
      source_type: 'flight'
      source_name: 'flight-2'
      channels: [1x1 struct]
>> sensors.sensor1.channels
      channel1: [1x1 struct]
>> sensors.sensor1.channels.channel1
      name: '1'
      local_ori: 'lateral'
      vehicle_ori: 'axial'
      signals: [1x1 struct]
>> sensors.sensor1.channels.channel1.signals
      signal1: [1x1 struct]
>> …
Run Code Online (Sandbox Code Playgroud)

python matlab numpy scipy mat-file

16
推荐指数
1
解决办法
2万
查看次数

如何添加Matplotlib Colorbar Ticks

堆栈溢出有很多matplotlib colorbar问题,但我无法理解它们以解决我的问题.

如何在彩条上设置yticklabels?

这是一些示例代码:

from pylab import *
from matplotlib.colors import LogNorm
import matplotlib.pyplot as plt

f = np.arange(0,101)                 # frequency 
t = np.arange(11,245)                # time
z = 20*np.sin(f**0.56)+22            # function
z = np.reshape(z,(1,max(f.shape)))   # reshape the function
Z = z*np.ones((max(t.shape),1))      # make the single vector to a mxn matrix
T, F = meshgrid(f,t)
fig = plt.figure()
ax = fig.add_subplot(111)
plt.pcolor(F,T,Z, norm=LogNorm(vmin=z.min(),vmax=z.max()))
plt.xlim((t.min(),t.max()))
mn=int(np.floor(Z.min()))        # colorbar min value
mx=int(np.ceil(Z.max()))         # colorbar max value
md=(mx-mn)/2                     # colorbar midpoint value
cbar=plt.colorbar()              # …
Run Code Online (Sandbox Code Playgroud)

python matplotlib colorbar

13
推荐指数
2
解决办法
4万
查看次数

Django Celery教程没有返回结果

UDATE3:发现了这个问题.请参阅以下答案.

UPDATE2:似乎我可能通过manage.py shell运行djcelery教程来处理自动命名和相对导入问题,见下文.它仍然不适合我,但现在我收到新的日志错误消息.见下文.

更新:我在帖子的底部添加了日志.似乎示例任务没有注册?

原帖:

我想让django-芹菜起来跑步.我无法通过这个例子.

我成功安装了rabbitmq,并且没有遇到任何麻烦:http://www.rabbitmq.com/getstarted.html

然后我尝试通过djcelery教程.

当我运行时,python manage.py celeryd -l info我收到消息:[任务] - app.module.add [2011-07-27 21:17:19,990:警告/主程序]芹菜@sequoia已经启动.

所以看起来不错.我把它放在我的设置文件的顶部:

import djcelery
djcelery.setup_loader()

BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_USER = "guest"
BROKER_PASSWORD = "guest"
BROKER_VHOST = "/"
Run Code Online (Sandbox Code Playgroud)

将这些添加到我安装的应用中:

'djcelery',
Run Code Online (Sandbox Code Playgroud)

这是我的app的tasks文件夹中的tasks.py文件:

from celery.task import task

@task()
def add(x, y):
    return x + y
Run Code Online (Sandbox Code Playgroud)

我把它添加到我的django.wsgi文件中:

os.environ["CELERY_LOADER"] = "django"
Run Code Online (Sandbox Code Playgroud)

然后我在命令行输入了这个:

>>> from app.module.tasks import add
>>> result = add.delay(4,4)
>>> result
(AsyncResult: 7auathu945gry48- a bunch of stuff) …
Run Code Online (Sandbox Code Playgroud)

python django rabbitmq celery

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

Matplotlib错误导致内存泄漏.我怎样才能释放那段记忆?

我正在运行包含matplotlib的django应用程序,并允许用户指定图形的轴.这可能导致'溢出错误:超出Agg复杂度'

当发生这种情况时,高达100MB的RAM被捆绑起来.通常我使用fig.gcf(),, plot.close()和释放内存gc.collect(),但与错误相关的内存似乎与绘图对象无关.

有谁知道我怎么能释放那个记忆?

谢谢.

这是一些代码,它给出了Agg Complexity Error.

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy as np      
import gc

a = np.arange(1000000)
b = np.random.randn(1000000)

fig = plt.figure(num=1, dpi=100, facecolor='w', edgecolor='w')
fig.set_size_inches(10,7)
ax = fig.add_subplot(111)
ax.plot(a, b)

fig.savefig('yourdesktop/random.png')   # code gives me an error here

fig.clf()    # normally I use these lines to release the memory
plt.close()
del a, b
gc.collect()
Run Code Online (Sandbox Code Playgroud)

python memory-leaks matplotlib

11
推荐指数
2
解决办法
6745
查看次数

在Internet Explorer中使用django和xlwt提供动态生成的MS Excel文件失败

我正在尝试使用xlwt从我的django站点上的数据库内容创建MS-Excel文件.

我在stackoverflow上看到了几个解决方案,特别是这个链接:django excel xlwt

和这个django片段:http://djangosnippets.org/snippets/2233/

这些示例适用于Firefox,但不适用于Internet Explorer.屏幕上出现了一堆蜿蜒的垃圾,而不是被提示打开或保存文件.似乎IE认为响应是html.

这是我的视图功能:

def exportexcel(request):
    from xlwt import Workbook

    wb = Workbook()
    ws = wb.add_sheet('Sheetname')
    ws.write(0, 0, 'Firstname')
    ws.write(0, 1, 'Surname')
    ws.write(1, 0, 'Hans')
    ws.write(1, 1, 'Muster')

    fname = 'testfile.xls'
    response = HttpResponse(mimetype="application/ms-excel")
    response['Content-Disposition'] = 'attachment; filename=%s' % fname

    wb.save(response)

    return response
Run Code Online (Sandbox Code Playgroud)

我在IE 8中看到了这种行为.

有关为什么这在Internet Explorer中不起作用的任何建议?

谢谢.

django internet-explorer-8 xlwt

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

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

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

django url模板标记的问题,{%url%}

您好我正在尝试将不同的网址从我的网站传递到模板中.

我以为可以通过在模板中使用它来完成

{% url myappname.module.views.urlfunction %}
Run Code Online (Sandbox Code Playgroud)

但是这会返回一个错误,说"渲染时出现了陷阱:'str'对象没有属性'正则表达式'"

我不确定这意味着什么.我在django模板中按照这个示例url模板标记

urlpatterns = patterns('',
url(r'^$', 'myappname.module.views.start'),
Run Code Online (Sandbox Code Playgroud)

这就是我在模板中输入的内容

{% url myappname.module.views.start %}
Run Code Online (Sandbox Code Playgroud)

我也试过这个url模式和模板组合到没有avial:

urlpatterns = patterns('',
url(r'^$', 'myappname.module.views.start', name="home"),

{% url "home" %}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

谢谢.

django django-templates

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

ld:找不到-lgfortran的库 - Mac Symlink问题?

我正在尝试用pip安装ObsPy.

以下cc命令的安装失败:

cc -bundle -undefined dynamic_lookup -L/usr/local/lib -L/usr/local/opt/sqlite/lib build/temp.macosx-10.8-x86_64-2.7/obspy/taup/src/emdlv.o build/temp.macosx-10.8-x86_64-2.7/obspy/taup/src/libtau.o build/temp.macosx-10.8-x86_64-2.7/obspy/taup/src/ttimes_subrout.o -lgfortran -o build/lib.macosx-10.8-x86_64-2.7/obspy/lib/libtaup.so

ld: library not found for -lgfortran
Run Code Online (Sandbox Code Playgroud)

这个问题类似:lgfortran没有找到,但解决方案是改变makefile.在取消pip安装时我不知道该怎么做.我用自制软件安装了gfortran.

有没有办法可以将符号链接放在此命令搜索位置的现有gfortran lib文件夹中?

那个位置会/usr/local/lib吗?

symlink cc gfortran

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

使用python打开Web浏览器(在Windows上),触发javascript操作,并获取html内容?

是的,听起来过于复杂.

我正在尝试从内部网上的页面中挖掘数据.页面是安全的.当我尝试使用urllib.urlopen()获取内容时,连接被拒绝.

因此,我想使用python打开Web浏览器打开该站点,然后单击一些链接,触发包含我想要收集的信息表的javascript弹出窗口.

有关从哪里开始的任何建议?

我知道页面的格式.它是这样的:

<div id="list">
    <ul id="list item">
        <li><a onclict="Openpopup('1');">blah</a></li>
    </ul>
    <ul></ul>
    etc
Run Code Online (Sandbox Code Playgroud)

然后隐藏的框架变得可见,并且表格中的字段被填充.

<div>
    <table>
       <tr><td><span id="info_i_want">...
Run Code Online (Sandbox Code Playgroud)

javascript python windows

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