小编Kit*_*Kit的帖子

wxPython:具有浮点值的"超级"wx.SpinCtrl,sizer内部的布局

wx.SpinCtrl仅限于整数旋转,而不是浮动.因此,我正在构建一个wx.TextCtrl+ wx.SpinButtoncombo类,这使我能够跨越浮点数.我能够以编程方式对它们进行大小和布局,以使组合看起来与普通组件完全相同wx.SpinCtrl.

我从这里继承了这个组合,wx.TextCtrl因为我希望它的父面板能够捕获wx.EVT_TEXT事件.如果你能改进我的这个论点,我将不胜感激.

wx.EVT_SPIN_UPwx.EVT_SPIN_DOWN从事件wx.SpinButton都是内实现和父框架并不关心这些事件.

现在,我刚碰到一堵砖墙.我的组合类与sizer不兼容.在.Add()将组合类放到a之后wx.GridBagSizer,只有在wx.TextCtrl它内部布局wx.GridBagSizer.该wx.SpinButton由自己留在了自己.但是wx.EVT_SPIN*绑定工作得很好.

我的问题是布局.如果我想wx.GridBagSizer将它视为一个小部件,我该如何编写该类?

这是我的组合类代码:

class SpinnerSuper(wx.TextCtrl):
  def __init__(self, parent, max):
    wx.TextCtrl.__init__(self, parent=parent, size=(48, -1))
    spin = wx.SpinButton(parent=parent, style=wx.SP_VERTICAL, size=(-1, 21))
    self.OnInit()
    self.layout(spin)
    self.internalBindings(spin)
    self.SizerFlag = wx.ALIGN_CENTER

    self.min = 0
    self.max = max

  def OnInit(self):
    self.SetValue(u"0.000")

  def layout(self, spin):
    pos = self.GetPosition()
    size = self.GetSize()
    RightEdge = pos[0] …
Run Code Online (Sandbox Code Playgroud)

python wxpython spinner sizer

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

如何在 64 位 CentOS 6 上编译和运行 32 位 Python?

我需要在 64 位 CentOS 中运行 32 位 Python。

背景

我有一个 PCI-GPIB 接口卡。它的驱动程序来自National Instruments。它在驱动程序页面中说:

NI-488.2 2.9 版支持 64 位内核。该驱动程序当前只能在 32 位应用程序中使用。

使用 Python 中的驱动程序

我使用PyVISA包装器来使用驱动程序,如下所示:

import visa
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

OSError: /usr/local/vxipnp/linux/bin/libvisa.so.7: wrong ELF class: ELFCLASS32
Run Code Online (Sandbox Code Playgroud)

National Instruments 说他们的驱动程序支持 64 位内核。
但它只能32 位应用程序中使用。不好。我的 Python 安装(我自己编译)是 64 位的。

如何在 64 位 CentOS 6 中编译 32 位 Python?

python linux compilation 32bit-64bit

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

Python和GnuCash:从GnuCash文件中提取数据

我正在寻找有关如何使用python读取GnuCash文件的信息.我已经读过这个python-gnucash提供Python绑定到GnuCash库的内容,但是目前它需要做很多工作(例如依赖项,头文件等).这些说明是针对Linux环境而定制的,而且是一个相当古老的GnuCash版本(2.0.x).我正在运行GnuCash 2.2.9.虽然我可以操作Linux命令行,但我在Windows XP上运行GnuCash.

我的主要目标是阅读(没有计划编写)我的GnuCash文件,以便我可以使用matplotlib和创建自己的可视化动态报告wxpython.我还没有心情去学习Scheme.

我希望有人能指出我这方面的良好开端.据我所知,GnuCash和Python,我想有人可能知道以下类型的解决方案:

  1. 最近更新的文档除了来自GnuCash wiki的文档
  2. 一些解决方法,例如导出到某种文件格式,其中有一个更成熟的Python库可以读取它.

除了提到的那些,你们可能会有更好的建议.

python api matplotlib

4
推荐指数
3
解决办法
5540
查看次数

将在彼此的时间范围内的任意日期对象组合在一起

我想将日历分成两周的间隔,从2008-May-5任何起点开始.

所以我从几个日期对象开始:

import datetime as DT

raw = ("2010-08-01",
       "2010-06-25",
       "2010-07-01",
       "2010-07-08")

transactions = [(DT.datetime.strptime(datestring, "%Y-%m-%d").date(),
                 "Some data here") for datestring in raw]
transactions.sort()
Run Code Online (Sandbox Code Playgroud)

通过手动分析日期,我完全能够确定哪些日期属于同一个两周的时间间隔.我希望得到与此类似的分组:

# Fortnight interval 1
(datetime.date(2010, 6, 25), 'Some data here')
(datetime.date(2010, 7, 1), 'Some data here')
(datetime.date(2010, 7, 8), 'Some data here')

# Fortnight interval 2
(datetime.date(2010, 8, 1), 'Some data here')
Run Code Online (Sandbox Code Playgroud)

python sorting group-by date intervals

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

渐变facecolor matplotlib条形图

如何在facecolor条形图中添加渐变?我想知道如何使用简单的单色渐变来复杂多色渐变.这是一些示例代码:

import numpy as np
import matplotlib.pyplot as plt

plt.figure(figsize=(1,5))
plt.axis([0,1,-50,200])
plt.xticks([])
plt.yticks([-40,180])
plt.bar(left=0, width=1, bottom=-40, height=220, color='r')
plt.subplots_adjust(left=0.4, right=0.8)
plt.savefig("test.png")
Run Code Online (Sandbox Code Playgroud)

python gradient colors matplotlib

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

检测无效的关键字参数

我有以下功能:

def foo(**kwargs):
  if not kwargs:
    # No keyword arguments? It's all right. Set defaults here...
  elif ('start_index' or 'end_index') in kwargs:
    # Do something here...
  else:
    # Catch unexpected keyword arguments
    raise TypeError("%r are invalid keyword arguments" % (kwargs.keys())
Run Code Online (Sandbox Code Playgroud)

题:

我想确保唯一有效的关键字参数是start_indexend_index.其他任何东西都会引发错误,即使与有效的混合也是如此.什么是食谱配方,以确保只有start_index或被end_index接受?是的,我正在寻找食谱配方,但我不确定如何搜索它.我不确定使用if-elif-else结构是否也是正确的方法.

python arguments keyword

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

在Dojo JSONP请求之后,响应存储在何处?

JavaScript的

例如,我有以下JavaScript代码(已加载Dojo 1.6):

dojo.require("dojo.io.script")

// PART I
var jsonpArgs = {
    url: "http://myapp.appspot.com/query",
    content: {
        id: "1234",
        name: "Juan",
        start_date: "2000-01-01",
        callback: "recover"
    }
};

// PART II
dojo.io.script.get(jsonpArgs).then(function(data) {
    console.log(data);
});

// PART III
function recover(data) {
    console.log(data);
}
Run Code Online (Sandbox Code Playgroud)

从浏览器直接查询

我知道我的服务器将收到查询,就像我在地址栏中键入以下内容一样:

http://myapp.appspot.com/query?id=1234&name=Juan&start_date=2000-01-01&callback=recover
Run Code Online (Sandbox Code Playgroud)

预期的回应

如果我使用浏览器地址栏直接查询我的服务器,我会收到MIME类型application/json和浏览器中呈现的明文,如下所示:

recover(
    {
        id: 1234,
        name: Juan,
        data: [
            ["2000-01-01", 1234],
            ["2000-01-02", 5678]
        ]
    }
);
Run Code Online (Sandbox Code Playgroud)

问题

现在,回顾一下JavaScript的第二部分,我将执行JSONP请求dojo.io.script.get(jsonpArgs).这会返回一个Deferred对象,我可以通过链接来利用.then它.请注意,我将.then事件的处理程序定义为输出捕获data到控制台的事件.

但是,我在控制台中得到的只是一个Event.我试图搜索它的数据树,但我找不到我预期的数据.

  1. 存储JSONP请求的响应在哪里?我怎么找到它?
  2. 我的服务器(我控制)只输出所请求数据的明文呈现,包含在 …

dojo jsonp deferred

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

如何定义可以与with语句一起使用的Python类?

我理解这StringIO就像一个文件对象,鸭子键入你会得到什么open('somefile.txt').

现在我想用StringIOwith语句:

with StringIO('some string') as fh: # fh as in "file handle"
    data = [stuff from stuff in fh.read()]
Run Code Online (Sandbox Code Playgroud)

但Python抱怨该类型StringIO没有__exit__方法.子类化后StringIO:

class MyStringIO(StringIO):
    def __exit__(self):
        self.close()
Run Code Online (Sandbox Code Playgroud)

我现在得到一个关于没有__enter__方法的例外.我该如何定义__enter__方法?Python对可以与with语句一起使用的类有什么期望?

python

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

如何在 numpy 中找到给定 y 的 x 或反之亦然?

例如,我有以下数组:

x = [0, 1, 2, 3, 4.5, 5]
y = [2, 8, 3, 7,   8, 1]
Run Code Online (Sandbox Code Playgroud)

我希望能够执行以下操作x

>>> what_is_y_when_x_is(2)
(2, 3)
>>> what_is_y_when_x_is(3.1) # Perhaps set rules to round to nearest (or up or down)
(3, 7)
Run Code Online (Sandbox Code Playgroud)

另一方面,当给出y

>>> what_is_x_when_y_is(2)
(0, 2)
>>> what_is_x_when_y_is(max(y))
([1, 4.5], 8)
Run Code Online (Sandbox Code Playgroud)

这个问题的具体情况

我可以绘制与使用封闭分析函数的y对比结果x,只需调用foo_function(x). 但是,我正在运行数值模拟,其数据图没有闭合解析解。

尝试的解决方案

我之前解决过类似的问题,大致是这样处理的:

what_is_y_when_x_is(some_x)

  1. 在数组x中搜索some_x.
  2. 获取其索引,i.
  3. 捡起y[i]

问题

有一个更好的方法吗?也许是内置numpy …

search numpy numerical-methods

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

如何从系统剪贴板粘贴到控制台Vim?

我可以将文本从Vim复制到其他Mac应用程序"*y.但是当我尝试从TextEdit粘贴到Vim时,我无法粘贴文本"*p.我错过了一些设置吗?

macos vim clipboard paste

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