我在Snow Leopard安装过程中安装了开发人员工具,对Snow Leopard进行了全新安装(使用擦除驱动器启动).
然后我安装了Python 2.6.2,取代了Snow Leopard默认的python 2.6.1.我试过通过以下方式安装PIL:
easy_installpippython setup.py build手动运行.所有产生相同的错误(链接到pip日志:http://drop.io/gi2bgw6).我已经看到其他人使用Snow Leopard默认python 2.6.1成功安装PIL,所以我不确定为什么我在使用2.6.2时遇到这么多麻烦.
我使用pygame在认知科学中运行实验,并且我经常需要大量I/O,因此我喜欢将这些任务分离到单独的进程(使用多核机器时)以提高代码的性能.但是,我遇到了一些代码可以在我的同事的Linux机器(Ubuntu LTS)上运行但不在我的mac上的情况.下面是代表最小可再现示例的代码.我的mac是2011 Macbook Air运行10.7.2并使用默认的python 2.7.1.我尝试通过预先构建的二进制文件安装pygame ,然后我也尝试从源代码安装SDL和pygame.
import pygame
import multiprocessing
pygame.init()
def f():
while True:
pygame.event.pump() #if this is replaced by pass, this code works
p = multiprocessing.Process(target=f)
p.start()
while True:
pass
Run Code Online (Sandbox Code Playgroud)
正如代码中所指出的,罪魁祸首似乎是pygame.event.pump()在一个单独的过程中.当我在我的Mac上运行它时,我首先在终端中重复打印以下内容:
The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec().
Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__() to debug.
Run Code Online (Sandbox Code Playgroud)
然后我收到一份崩溃报告,复制到这个要点.
有关如何解决此问题的任何建议?
我了解那些通过开发者网站安装Xcode 4的人能够/Developer/Library/uninstall-devtools –mode=all通过app 卸载,但是我通过App store安装,似乎在Developer文件夹中的任何位置都没有带有"uninstall"字样的可执行文件所有.关于如何卸载Xcode 4的任何建议?
我在Linux(ubuntu 12.04)上通过python使用openCV,我有一个logitech c920,我想从中获取图像.奶酪能够获得高分辨率的帧,但每当我尝试使用openCV时,我只能获得640x480的图像.我试过了:
import cv
cam = cv.CaptureFromCAM(-1)
cv.SetCaptureProperty(cam,cv.CV_CAP_PROP_FRAME_WIDTH,1920)
cv.SetCaptureProperty(cam,cv.CV_CAP_PROP_FRAME_WIDTH,1080)
Run Code Online (Sandbox Code Playgroud)
但是这会在最后两行的每一行之后产生"0"的输出,并且当我随后通过以下方式获取帧时:
image = cv.QueryFrame(cam)
Run Code Online (Sandbox Code Playgroud)
生成的图像仍为640x480.
我尝试通过(在python之外)安装看似相关的工具:
sudo apt-get install libv4l-dev v4l-utils qv4l2 v4l2ucp
Run Code Online (Sandbox Code Playgroud)
我确实可以通过以下方式操纵相机的设置(再次,在python之外)
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=1
v4l2-ctl --set-parm=30
Run Code Online (Sandbox Code Playgroud)
并观察:
v4l2-ctl -V
Run Code Online (Sandbox Code Playgroud)
确实表明某些事情发生了变化:
Format Video Capture:
Width/Height : 1920/1080
Pixel Format : 'H264'
Field : None
Bytes per Line : 3840
Size Image : 4147200
Colorspace : sRGB
Run Code Online (Sandbox Code Playgroud)
但是当我弹出python shell时,上面的代码表现与以前完全相同(在尝试设置属性并获得640x480的图像时打印零).
能够提高捕获的分辨率对我来说非常重要,所以我非常感谢任何人都可以提供的任何指针.
我有一张脸的图像,我用haar级联来检测嘴,鼻子和每只眼睛的位置(x,y,宽度,高度).我想将这些区域外的所有像素设置为零.这样做的最快(计算)方式是什么?我最终会实时对视频帧进行操作.
我知道通过将输出rnorm()视为时间序列可以实现白噪声.有关如何模拟粉红噪音的任何建议?
我希望使用python的多处理模块创建一个进程,通过opencv的python接口连续轮询网络摄像头,将任何结果图像发送到队列,其他进程可以从中访问它们.但是,每当我尝试对队列中其他进程检索到的图像做任何事情时,我都会遇到挂起(Ubuntu 12.04上的python 2.7).这是一个最小的例子:
import multiprocessing
import cv
queue_from_cam = multiprocessing.Queue()
def cam_loop(queue_from_cam):
print 'initializing cam'
cam = cv.CaptureFromCAM(-1)
print 'querying frame'
img = cv.QueryFrame(cam)
print 'queueing image'
queue_from_cam.put(img)
print 'cam_loop done'
cam_process = multiprocessing.Process(target=cam_loop,args=(queue_from_cam,))
cam_process.start()
while queue_from_cam.empty():
pass
print 'getting image'
from_queue = queue_from_cam.get()
print 'saving image'
cv.SaveImage('temp.png',from_queue)
print 'image saved'
Run Code Online (Sandbox Code Playgroud)
此代码应该运行到"保存图像"的打印,但然后挂起.我有什么想法可以解决这个问题吗?
我有一个决策树表示为R中的列表:
tree = list(
"Bin type" = list(
"no bin" = list(
"SOA linearity" = list(
"linear" = list("Linear MEM")
, "non-linear" = list("GAMM")
)
)
, "bin" = list(
"SOA type" = list(
"SOA as categorical" = list(
"Tool" = list(
"ANOVA"
, "MEM"
)
)
, "SOA as continuous" = list(
"SOA linearity" = list(
"linear" = list(
"Tool" = list(
"ANOVA"
, "MEM"
)
)
, "non-linear" = list("GAMM")
)
)
)
)
)
)
Run Code Online (Sandbox Code Playgroud)
有没有一种快速的方法可以将其可视化为树形图?
我正在使用 h5py 在 python 中创建 hdf5 文件,并且我想使用 blosc 作为压缩过滤器。我首先通过以下方式从源安装了 c-blosc:
wget https://github.com/Blosc/c-blosc/archive/v1.9.1.tar.gz
tar -xvf c-blosc-v1.9.1.tar.gz
cd c-blosc-v1.9.1
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
cmake --build .
cmake --build . --target install
Run Code Online (Sandbox Code Playgroud)
(注意我使用自制软件,所以我的 /usr/local 无需 sudo 即可写入)
然后我通过以下方式从源安装了 hdf5 v1.10.0:
wget http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.0/src/hdf5-1.10.0.tar.gz
tar -xvf hdf5-1.10.0.tar.gz
cd hdf5-1.10.0
./configure --enable-static=yes --enable-shared=yes --prefix=/usr/local/hdf5
make && make install
Run Code Online (Sandbox Code Playgroud)
最后我通过以下方式从源代码安装 h5py v2.6.0:
wget https://github.com/h5py/h5py/archive/2.6.0.tar.gz
tar -xvf h5py-2.6.0.tar.gz
cd h5py-2.6.0
python setup.py install
python setup.py install
Run Code Online (Sandbox Code Playgroud)
然而,当我启动 python 解释器并运行时:
import h5py
f = h5py.File('myFile.hdf5','w')
dset …Run Code Online (Sandbox Code Playgroud) 我通常不是Windows用户,但我需要从我的python代码构建exe,所以我想使用py2exe来做到这一点.我有一个XP系统,我安装了python 2.6.6.我下载了py2exe-0.6.9源代码,但是当我尝试安装(通过"python setup.py install")时,我收到错误"无法找到vcvarsall.bat".我一派,碰上了这个帖子,其中一个受访者建议可安装MinGW的GCC二进制文件的定制版本在这里.我这样做了,现在当我尝试安装py2exe时,我收到了一个新错误.这是输出:
C:\Documents and Settings\Administrator\Desktop\py2exe-0.6.9>python setup.py install
C:\Documents and Settings\Administrator\Desktop\py2exe-0.6.9\py2exe\build_exe.py:16: DeprecationWarning: the sets module is deprecated
import sets
running install
running build
running build_py
running build_ext
building '_memimporter' extension
creating build\temp.win32-2.6
creating build\temp.win32-2.6\Release
creating build\temp.win32-2.6\Release\source
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -DPYTHONDLL=\"PYTHON26.DLL\" -DPYTHONCOM=\"pythoncom26.dll\" -IC:\Python26\include -IC:\Python26\PC -c source/MemoryModule.c -o build\temp.win32-2.6\Release\source\memorymodule.o
source/MemoryModule.c:30: warning: ignoring #pragma warning
source/MemoryModule.c: In function 'BuildImportTable':
source/MemoryModule.c:364: warning: pointer targets in passing argument 1 of 'MyLoadLibrary' differ in signedness
source/MemoryModule.c: In function 'GetNameTable': …Run Code Online (Sandbox Code Playgroud) 如果我有以下代码:
def f():
print 'ok!'
import sys
sys.exit()
if __name__=='__main__':
import billiard
billiard.forking_enable(0)
p = billiard.Process( target=f)
p.start()
while p.is_alive():
pass
Run Code Online (Sandbox Code Playgroud)
脚本按预期运行,打印"ok!" 并结束.但是,如果我省略该if __name__=='__main__':行并去除以下行,我的机器(OS X)会发疯,不断产生大量的Python进程直到我killall Python.知道这里发生了什么吗?
(对于那些标记为重复的人,请注意,虽然另一个问题if __name__=='__main__'通常会询问目的 ,但我特别询问为什么在此处使用它会导致意外行为)
data我经常遇到这样的场景:不同的几何对象需要查看提供给初始调用的参数的数据子集ggplot()。
通常,这发生在长链之后可视化某些内容的情况下,我实际上不需要在工作区中保存数据,但我当前的解决方法是这样做,然后在每个几何中显式引用它,例如:
(
#...
# long chain
# ...
) -> to_plot
(
ggplot()
+ geom_ribbon(
data = (
to_plot #using intermediate object saved to workspace
%>% dplyr::filter(
cells_or_boots=='bootss'
)
)
, mapping = aes(
x = x
, ymin = lo
, ymax = hi
)
)
+ geom_line(
data = (
to_plot #using intermediate object saved to workspace
%>% dplyr::filter(
cells_or_boots=='cells'
)
)
, mapping = aes(
x = x
, y = mean
) …Run Code Online (Sandbox Code Playgroud) 我正在使用OS X(10.8.4)通过cv2 python绑定运行OpenCV 2.4.5.我试图通过多处理模块在一个单独的过程中从USB网络摄像头捕获图像.如果我使用我的笔记本电脑(2011 macbook air)内部网络摄像头,一切似乎都有效,但当我尝试从usb网络摄像头(Logitech C920)读取时,我遇到了崩溃(当我使用没有多处理封装的USB摄像头时没有崩溃) .崩溃日志在这里.我正在使用的代码将可靠地重现崩溃如下.让这项工作对我来说非常重要,所以任何帮助都将非常感谢!
import multiprocessing
import cv2 #doesn't matter if you import here or in cam()
def cam():
vc = cv2.VideoCapture(0) #modify 0/1 to toggle between USB and internal camera
while True:
junk,image = vc.read()
camProcess = multiprocessing.Process( target=cam )
camProcess.start()
while True:
pass
Run Code Online (Sandbox Code Playgroud)