在Python应用程序中,如何以跨平台的方式获取系统的RAM总量以及当前有多少RAM?
理想情况下,可用RAM的数量应该只考虑实际可以分配给Python进程的物理内存.
我一直在尝试制作一个ComboBox,它可以在您键入时建议选项,就像IDE的代码建议/代码意义,或者在您键入搜索时的Google搜索建议.
建议将是ComboBox下拉列表中的项目,其中包含在ComboBox的文本框中键入的子字符串.
我试图让ComboBox做到这一点,没有运气,我已经尝试了蒙面的ComboBoxes,甚至尝试将ComboCrtl子类化,但是我总是遇到麻烦,无论是表现明智还是不能做什么我想要的
我的项目列表(建议)中有大约2500个项目,只需清除ComboBox并插入匹配的项目太慢.
我将如何制作这样的ComboBox,或者是否有我可以使用的内置功能?
在显示建议之前,我可以允许一小段延迟,但在我的意见中,整个窗口悬挂一两秒是不可接受的.
有没有人对如何在python中进行图像比较以检测图像中的变化有任何建议?我正在开发一个应用程序,用我的网络摄像头监视我的区域,我想弄清楚如何比较每帧拍摄的图像,看看是否有任何动作被检测到.从长远来看,我想设置一个灵敏度滑块,所以如果你能够指导我的方向,我相信我可以找到其余的.
我在这里看到一些关于将网络摄像头与wxPython集成的帖子,这是一个小型演示.请注意,我刚刚在昨晚开始使用,所以如果您正在寻找笔尖代码,您可能需要自己修改它(现在;):
要求:PIL和VideoCapture
#videocapturepanel.py
#Todo:
# - Fix background colour after video is stopped
# - Create image comparison method
# - Add capture function
# - Save stream to video file?
import threading, wx
from PIL import Image
from VideoCapture import Device
cam = Device(0)
buffer, width, height = cam.getBuffer()
cam.setResolution(width, height)
DEFAULT_DEVICE_INDEX = 0
DEFAULT_DEVICE_WIDTH = width
DEFAULT_DEVICE_HEIGHT = height
DEFAULT_BACKGROUND_COLOUR = wx.Colour(0, 0, 0)
class VideoCaptureThread(threading.Thread):
def __init__(self, control, width=DEFAULT_DEVICE_WIDTH, height=DEFAULT_DEVICE_HEIGHT, backColour=DEFAULT_BACKGROUND_COLOUR):
self.backColour = …Run Code Online (Sandbox Code Playgroud) 我正在尝试从使用wxPython和Matplotlib的python脚本生成一个.exe文件,看起来似乎是不可能的.
我正在做的导入(与Matplotlib有关)如下:
from numpy import *
import matplotlib
matplotlib.interactive(True)
matplotlib.use("WXAgg")
from matplotlib.figure import Figure
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigCanvas
from matplotlib.ticker import MultipleLocator
这是我正在尝试使用的setup.py文件:
from distutils.core import setup
import py2exe
import matplotlib
opts = {
'py2exe': {"bundle_files" : 3,
"includes" : [ "matplotlib",
"matplotlib.backends",
"matplotlib.backends.backend_wxagg",
"numpy",
"matplotlib.ticker",
"matplotlib.figure", "_wxagg"],
'excludes': ['_gtkagg', '_tkagg', '_agg2',
'_cairo', '_cocoaagg',
'_fltkagg', '_gtk', '_gtkcairo', ],
'dll_excludes': ['libgdk-win32-2.0-0.dll',
'libgobject-2.0-0.dll']
}
}
setup(
windows=[{'script':'starHunter.py', 'icon_resources':[(1, 'icon.ico')]}],
data_files=matplotlib.get_py2exe_datafiles(),
options=opts,
zipfile=None
)
Run Code Online (Sandbox Code Playgroud)
在尝试运行.exe文件后,我总是得到"找不到matplotlib数据文件",顺便说一句,这个文件已成功创建.
附加信息:我在Windows XP上使用Python 2.6,Matplotlib 0.99.3,wxPython 2.8.11.0
提前致谢.任何帮助将不胜感激! …
我想在virtualenv中设置一个wxpython.正如许多地方所详述的那样,easy_install/pip安装剂量不能用作setup.py.
我介绍了如何在Mac上进行设置,但是没有找到适合Linux的方法.
怎么能在Linux上完成?
我的实际用例有点实验性.我想让一个django项目调用一个wxpython应用程序.这在virtualenv之外工作,但导入失败,因为在virtualenv中没有安装wx.
我在这里先向您的帮助表示感谢.
我有一个带有wxpython GUI和一些命令行参数的python程序.我使用py2exe生成一个单独的Windows可执行文件.我不想在后台有一个命令行窗口,所以py2exe使这个没有这个窗口的pythonw可执行文件.这相当于使用*.pyw扩展名.
问题是,如果你想看到可用的命令行参数,你自然会在shell上执行"main.exe -h".即使argparse提供此信息,由于*.pyw扩展名,它也无法到达stdout.
那么如何使用pythonw为GUI应用程序重新启用stdout呢?
最小的工作范例:
# test.py
print "hello"
Run Code Online (Sandbox Code Playgroud)
执行:
#> python test.py
hello
#> pythonw test.py
#>
Run Code Online (Sandbox Code Playgroud)
提前感谢任何建议!
我有一个wx.py.Shell.shell小部件,它允许用户执行与我的程序交互的python代码.我希望能够将用户在此空间中定义的函数传递给我的C++代码(通过wxswig生成的自定义小部件包装器)并执行它.
在我的C++代码中,我使用std :: function <>类来调用绑定函数(C++或Python)
所以我创建了一个简单的类来用函数调用操作符包装PyObject.但是当我尝试调用PyObject*时,我得到了一个段错误.
class PyMenuCallback
{
PyObject *Func;
public:
PyMenuCallback(const PyMenuCallback &op2);
PyMenuCallback(PyObject *func);
~PyMenuCallback ();
void operator() (int id);
};
/////////////////////////////////////////////////////////
PyMenuCallback::PyMenuCallback(PyObject *func)
: Func(func)
{
Py_XINCREF (Func);
if(!PyCallable_Check(Func))
cout << "Not a Callable Callback." << endl; //Throw an exception or something
}
PyMenuCallback::PyMenuCallback(const PyMenuCallback &op2)
: Func (op2.Func)
{
Py_XINCREF (Func);
if(!PyCallable_Check(Func))
cout << "Not a Callable Callback." << endl;
}
PyMenuCallback::~PyMenuCallback()
{
Py_XDECREF (Func);
}
void PyMenuCallback::operator() (int id)
{
cout << "Calling Callback" …Run Code Online (Sandbox Code Playgroud) 我正在制作一个非常简单的策划wxApp.
我已经安装了Python 2.7.9和wxPython 3.0.2
这是我的代码:
import wx
import wx.lib.plot as plot
class Pantalla(wx.Frame):
def __init__(self):
app = wx.App()
self.frame1 = wx.Frame(None, title = "GRAFICADOR", id = -1, size=(500,500))
self.panel1 = wx.Panel(self.frame1)
self.panel1.SetBackgroundColour("white")
plotter = plot.PlotCanvas(self.panel1, id=-1, pos = wx.Point(-1,-1), size = wx.Size(-1,-1), style = 0, name= 'plotCanvas')
data = [(1,2), (2,3), (4,6)]
line = plot.PolyLine(data, colour='red', width = 1)
gc = plot.PlotGraphics([line], 'Line', 'Eje x', 'Eje y')
plotter.Draw(gc, xAxis = (0,15), yAxis=(0,15))
self.frame1.Show(True)
app.MainLoop()
t = Pantalla()
Run Code Online (Sandbox Code Playgroud)
但是,每当我测试它时,它都会抛出这个错误:
Traceback (most …Run Code Online (Sandbox Code Playgroud) 我正在尝试在以下最小应用程序中使用 Python GUI wx(可通过 安装pip install wxPython):
import wx
app = wx.App()
Run Code Online (Sandbox Code Playgroud)
运行此代码段将返回以下内容:
This program needs access to the screen. Please run with a Framework
build of python, and only when you are logged in on the main display
of your Mac.
Run Code Online (Sandbox Code Playgroud)
有谁知道如何帮助 wx 获得“访问屏幕”,或者什么是“Python 框架构建”?如果其他人可以为这些问题提供任何帮助,我将不胜感激!
我想使用wxPython获取两个显示器的屏幕大小.
获取一个监视器的屏幕大小:(screenSize是包含x和y值的[]).
screenSize = wx.DisplaySize()
Run Code Online (Sandbox Code Playgroud)
但我想要一些适合多个监视器的东西,如下所示:
screenSizeMonitor1 = wx.DisplaySize()
screenSizeMonitor2 = wx.DisplaySize()
Run Code Online (Sandbox Code Playgroud)
如果可能的话,最好知道哪个监视器位于左侧(如果使用两个监视器),哪个监视器位于右侧.
wxpython ×10
python ×8
autocomplete ×1
autosuggest ×1
c++ ×1
combobox ×1
linux ×1
matplotlib ×1
py2exe ×1
python-c-api ×1
pythonw ×1
stdout ×1
swig ×1
ubuntu ×1
virtualenv ×1
webcam ×1
windows ×1
windows-xp ×1
wxwidgets ×1