我正在使用Django 1.3应用程序和gunicorn 0.12.1获得不一致的代码重新加载行为,在virtualenv中运行.
即使重新启动特定的gunicorn进程PID,Gunicorn也无法正确重新加载我的应用程序.当我运行一个基本的runserver(通过Django,通过manage.py命令)这不是一个问题.
当我删除并重新创建我的virtualenv时,gunicorn会按照预期的新代码运行.
是否有Python缓存或什么?我还试图删除所有*.pyc文件.
当我尝试将ctypes数组用作numpy数组时,我收到以下警告消息:
Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes, numpy
>>> TenByteBuffer = ctypes.c_ubyte * 10
>>> a = TenByteBuffer()
>>> b = numpy.ctypeslib.as_array(a)
C:\Python27\lib\site-packages\numpy\ctypeslib.py:402: RuntimeWarning: Item size
computed from the PEP 3118 buffer format string does not match the actual item s
ize.
return array(obj, copy=False)
>>> b
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=uint8)
Run Code Online (Sandbox Code Playgroud)
但是代码似乎正在起作用.忽略这个警告是不是一个坏主意?
背景:我正在调用一个实时生成数据的C …
我有一个程序可以实时查看摄像机输入并获取中间像素的颜色值.我使用captureOutput:方法从AVCaptureSession输出中获取CMSampleBuffer(恰好读作CVPixelBuffer),然后使用以下代码获取像素的rgb值:
// Get a CMSampleBuffer's Core Video image buffer for the media data
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
// Lock the base address of the pixel buffer
CVPixelBufferLockBaseAddress(imageBuffer, 0);
// Get the number of bytes per row for the pixel buffer
size_t bytesPerRow = CVPixelBufferGetBytesPerRow(imageBuffer);
// Get the pixel buffer width and height
size_t width = CVPixelBufferGetWidth(imageBuffer);
size_t height = CVPixelBufferGetHeight(imageBuffer);
unsigned char* pixel = (unsigned char *)CVPixelBufferGetBaseAddress(imageBuffer);
NSLog(@"Middle pixel: %hhu", pixel[((width*height)*4)/2]);
int red = pixel[(((width*height)*4)/2)+2];
int green = pixel[(((width*height)*4)/2)+1];
int …Run Code Online (Sandbox Code Playgroud) iphone ios avcapturesession cmsamplebufferref cmsamplebuffer
使用Python的.gitignore样式fnmatch()最简单的方法是什么?看起来stdlib不提供match()函数,该函数将路径规范与UNIX样式路径正则表达式匹配.
fnmatch()只匹配纯文件名,没有路径http://docs.python.org/library/fnmatch.html?highlight=fnmatch#fnmatch
glob()将执行目录列表,并且不提供match()true/false样式函数http://docs.python.org/py3k/library/glob.html?highlight=glob#glob.glob
.gitignore具有通配符的路径和文件(黑色)列出
我正在扩展我们的库(支持Python 2.7)中的类以支持PEP 3118,后者已经被反向移植到2.7.
从文档中,我需要初始化tp_as_buffer字段以指向a PyBufferProcs.但是,从2.7的文档中,此结构的描述仅包含旧缓冲区协议的条目.从来源,我收集的是
PyBufferProcs对新协议(一些其他的项目bf_getbuffer和bf_releasebuffer).
问题仍然存在:
我是否必须做一些特别的事情来告诉Python这些新条目是否有效?
我是否必须填写旧协议的条目?(例如,2.7的文档说明bf_getsegcount
可能不为空.但如果我支持PEP 3118,则不应使用此条目.)
我需要列出当前目录(.)中的所有文件(包括所有子目录),并排除一些文件,如.gitignore如何工作(http://git-scm.com/docs/gitignore)
使用fnmatch(https://docs.python.org/2/library/fnmatch.html),我将能够使用模式"过滤"文件
ignore_files = ['*.jpg', 'foo/', 'bar/hello*']
matches = []
for root, dirnames, filenames in os.walk('.'):
for filename in fnmatch.filter(filenames, '*'):
matches.append(os.path.join(root, filename))
Run Code Online (Sandbox Code Playgroud)
如何"过滤"并获取与"ignore_files"的一个或多个元素不匹配的所有文件?
谢谢!
是否有可能 - 如果这么谨慎 - 使用sendfile()(或其Darwin/BSD表兄弟fcopyfile())直接在共享内存对象和文件之间传送数据?
像功能sendfile()和fcopyfile()可以执行所有的机械必需品托换数据的这种转移的完全不留内核空间-你沿着两个打开的描述符传,源和目的,调用这些函数时,他们从那里.
复制数据的其他方法总是需要人工操作跨越内核空间和用户空间之间的边界; 这种上下文切换本质上是非常昂贵的,性能方面的.
关于使用共享内存描述符作为参数的主题,我找不到任何确定的东西:没有赞成或反对这种做法的文章; 在各个man页面中没有任何内容; 没有推文公开考虑 - sendfile()共享内存描述符有害; &c ...但是,我认为我应该能够做到这样的事情:
char const* name = "/yo-dogg-i-heard-you-like-shm"; /// only one slash, at zero-index
int len = A_REASONABLE_POWER_OF_TWO; /// valid per shm_open()
int descriptor = shm_open(name, O_RDWR | O_CREAT, 0600);
int destination = open("/tmp/yodogg.block", O_RDWR | O_CREAT, 0644);
void* memory = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, descriptor, 0);
off_t bytescopied = 0;
sendfile(destination, descriptor, &bytescopied, len); …Run Code Online (Sandbox Code Playgroud) 我有一个20字节的十六进制哈希,我想存储在django模型中.如果我使用文本字段,它将被解释为unicode并且它会返回乱码.
目前我正在编码并对其进行解码,这真的使代码混乱,因为我必须能够通过它进行过滤.
def get_changeset(self):
return bin(self._changeset)
def set_changeset(self, value):
self._changeset = hex(value)
changeset = property(get_changeset, set_changeset)
Run Code Online (Sandbox Code Playgroud)
这是一个过滤的例子
Change.objects.get(_changeset=hex(ctx.node()))
Run Code Online (Sandbox Code Playgroud)
这是django开发人员推荐的方法,但我真的很难接受这样一个事实,就是存储20个字节就是这个丑陋的事实.
也许我太过纯粹主义者了,但理想情况下我能够写作
Change.objects.get(changeset=ctx.node())
Run Code Online (Sandbox Code Playgroud)
这些属性允许我写:
change.changeset = ctx.node()
Run Code Online (Sandbox Code Playgroud)
这就像我可以问的那样好.
我正在使用va_list来构造一个呈现的字符串.
void Text2D::SetText(const char *szText, ...)
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但现在用户可以在应用程序运行时更改语言.我需要重新生成所有文本字符串,并在初始化后重新缓存文本位图.我想存储va_list并在需要生成文本时使用它.
为了给你更多背景知识,这需要在我正在翻译的关键字符串中包含动态数据的情况下发生.
"Player Score:%d"
Run Code Online (Sandbox Code Playgroud)
这是我需要翻译的关键字符串.我希望保留va_list中提供的数字以供以后使用(在初始化文本的函数范围之外),以便在初始化后需要重新翻译.我希望保留一份va_list的副本,以便与vsnprintf一起使用.
我已经做了一些研究,并找到了一些方法.其中一些我质疑它是否是一种合适的方法(在稳定和便携方面).
我目前的网络应用程序项目需要一点NLP:
......如果你有NLTK,那么这很大程度上是一件非常容易的事情- 我会这样做:应用程序后端是龙卷风上的Django; 你认为做这些事情不是问题.
但是,我必须以交互方式提供必须使用令牌化器的用户反馈,因此我需要对数据客户端进行令牌化.
现在我实际上正在使用NLTK,通过REST API调用Tornado进程来包装NLTK函数而不是其他任何东西.目前,延迟和并发等事情显然不是最优惠的w/r/t这个ad-hoc服务,礼貌地说.我想,我应该做的是,如果不自己重新实现这个功能的咖啡/ Java版本.
然而,从我所看到的情况来看,JavaScript并没有被认为很酷,足以累积出可以在C或Python(甚至是Erlang)中找到的非常网络特定的通用库schmorgasbörd.NLTK当然是任何人的衡量标准,但我只需要几个百分点的包装.
但是现在我处于一个十字路口 - 我必须加倍努力:
或完全不同的东西.我该怎么办?喜欢开始做事.这是我的问题.我愿意接受涉及非典型方法的解决方案 - 只要你的建议不令人反感(例如"使用Silverlight")和/或时间漩涡(例如"获得计算语言学博士你的troglodyte")我就是游戏.先感谢您.
python ×6
c++ ×2
django ×2
fnmatch ×2
gitignore ×2
pep3118 ×2
binary-data ×1
c ×1
coffeescript ×1
ctypes ×1
encoding ×1
filenames ×1
glob ×1
gunicorn ×1
ios ×1
iphone ×1
javascript ×1
mmap ×1
nlp ×1
numpy ×1
posix ×1
printf ×1
pybuffer ×1
python-c-api ×1
regex ×1
tokenize ×1
virtualenv ×1
warnings ×1