我有以下大量的Python代码(运行v2.7)导致在MemoryError处理大(几GB)文件时抛出异常:
myProcess = Popen(myCmd, shell=True, stdout=PIPE, stderr=PIPE)
myStdout, myStderr = myProcess.communicate()
sys.stdout.write(myStdout)
if myStderr:
sys.stderr.write(myStderr)
Run Code Online (Sandbox Code Playgroud)
在阅读文档时Popen.communicate(),似乎有一些缓冲:
注意读取的数据缓冲在内存中,因此如果数据大小很大或不受限制,请不要使用此方法.
有没有办法禁用此缓冲,或强制缓存在进程运行时定期清除?
我应该在Python中使用什么替代方法来运行将千兆字节数据流式传输到的命令stdout?
我应该注意,我需要处理输出和错误流.
我有一个makefile透明的Linux(x86_64)和OS X Intel(x86_64).这使用64位特定GCC选项.
有没有办法调整makefile,以便我可以构建32位和64位OS X PPC(ppc,ppc64),而无需维护单独的,特定于arch的makefile - 可能类似于预处理器指令,可以确定建筑前的建筑?
我有一个Lion(10.7.1)系统,我在其上安装了Xcode 4.2.假设我有一个简单的C程序helloWorld.c如下:
#include <stdio.h>
main() {
printf("hello, world\n");
}
Run Code Online (Sandbox Code Playgroud)
使用此设置,我想尝试编译helloWorld.c以在PPC和PPC64体系结构上使用,例如:
$ gcc -arch ppc helloWorld.c -o helloWorld
Run Code Online (Sandbox Code Playgroud)
这给出以下错误消息:
llvm-gcc-4.2: error trying to exec '/usr/bin/../llvm-gcc-4.2/bin/powerpc-apple-darwin11-llvm-gcc-4.2': execvp: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如何将PowerPC的支持恢复到我的Xcode 4安装?
我已经尝试过此前Stack Overflow帖子中列出的说明,但这些说明不适用于我的Lion安装.
我正在使用Apple的开发站点上的Xcode 3.2.6安装程序.
从符号链接,我怀疑这些指令适用于10.6安装,但不适用于10.7.
在任何情况下,Xcode 3.2.6安装中的某些源文件和目录不存在,无法从Xcode 3安装中的其他位置创建符号链接.(例如,没有/Xcode3/usr/bin用于链接as二进制文件的目录.)
有没有人幸运从Lion系统编译PPC和PPC64二进制文件?
要获得赏金,请写一个相当详细的答案.对于我自己,也为后人.:)
编辑 - 2011年8月31日
所以我尝试了Laurent指出并进一步改进的修改,但这还不足以让PPC支持工作.
我添加了符号链接,试图帮助gcc找到所需的资源:
$ sudo ln -s /Xcode3/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-gcc-4.2 /usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-gcc-4.2
$ sudo ln -s /Xcode3/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g++-4.2 /usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g++-4.2
$ sudo ln …Run Code Online (Sandbox Code Playgroud) 我想隐藏滚动UIWebView时出现的本机滚动条/滚动条,但仍保持滚动功能不变.这可能吗?
提前致谢,
威廉
我在转换NSObject成一个问题时遇到了问题NSData.我有一个继承的类NSObject.
当我试图将该特定类的对象转换NSData为如下:
NSData *dataOnObject = [NSKeyedArchiver archivedDataWithRootObject:classObject];
Run Code Online (Sandbox Code Playgroud)
但它给出了异常,说明-[classObject encodeWithCoder:]:无法识别的选择器发送到实例..
我还将对象添加到新创建的数组中
NSMutableArray *wrapperedData = [NSMutableArray arrayWithObject: classObject];
NSData *dataOnObject = [NSKeyedArchiver archivedDataWithRootObject:value];
Run Code Online (Sandbox Code Playgroud)
但是,它仍然给出例外.
所以我需要从对象中提取字节classObject.
任何帮助将不胜感激 ...
等待您的回复 ...
我div想要淡出,更新其内容,然后淡入.到目前为止,我尝试过:
$('#myDivID').fadeOut('slow', function() {
$('#myDivID').replaceWith("<div id='myDivID'>" + content + "</div>");
$('#myDivID').fadeIn('slow');
});
Run Code Online (Sandbox Code Playgroud)
发生的事情是淡出完成并调用匿名回调.到现在为止还挺好.
的div的内容被正确地更换,但fadeIn()效果是立竿见影的-不平滑过渡,只是一个快速,活泼跳跃的更新div.
有没有更好的方法来实现这一目标?谢谢你的建议.
我正在尝试编译numpyv1.12,以获得对ATLAS / LAPACK例程的支持。
问题
我用于编译的设置似乎无法将ATLAS / LAPACK库引入numpy。
设置
我正在使用的主机(计算群集)没有管理员特权。
但是,节点可以通过GNU模块访问gcc4.7.2和glibc5.3.0、2.17和2.22以及ATLAS / LAPACK库和标头v3.10.2。
出于兼容性原因,我正在使用包含Python 2.7.16的虚拟环境。同样,numpy出于同样的原因,我正在安装旧版本的。如果一切正常,我可以探索的较新版本,numpy但目前,这就是我正在使用的版本。
我的源目录numpy有一个名为的配置文件site.cfg,其中包含以下指令:
[ALL]
library_dirs = /usr/local/lib:/net/module/sw/glibc/2.22/lib64:/net/module/sw/atlas-lapack/3.10.2/lib
include_dirs = /usr/local/include:/net/module/sw/glibc/2.22/include:/net/module/sw/atlas-lapack/3.10.2/include
[atlas]
libraries = lapack,f77blas,cblas,atlas
library_dirs = /net/module/sw/atlas-lapack/3.10.2/lib
include_dirs = /net/module/sw/atlas-lapack/3.10.2/include
Run Code Online (Sandbox Code Playgroud)
我numpy通过以下命令进行编译:
$ CFLAGS="${CFLAGS} -std=c99 -fPIC" LDFLAGS="-L/home/areynolds/.conda/envs/genotyping_environment/lib -Wl,-rpath=/home/areynolds/.conda/envs/genotyping_environment/lib -Wl,--no-as-needed -Wl,--sysroot=/,-L/net/module/sw/glibc/2.22/lib64" python setup.py build --fcompiler=gnu95
Run Code Online (Sandbox Code Playgroud)
我正在使用--fcompiler=gnu95ATLAS / LAPACK库,是使用GNU Fortran编译的。我重写CFLAGS,并LDFLAGS以变量的GCC工具包可以编译和链接正确。
问题
编译之后,我测试该numpy库以查看通过一种方法安装了什么:
$ python
... …Run Code Online (Sandbox Code Playgroud) 我喜欢将我的变量初始化为一些"虚拟"值,并开始使用int64_t和uint64_t.到目前为止,看起来我至少有三种方法可以初始化int64_t一个特定的值(并且对于无符号的等价物稍有改动):
int64_t method_one = 0;
int64_t method_two = 0LL;
int64_t method_three = INT64_C(0);
Run Code Online (Sandbox Code Playgroud)
我使用GCC并针对OS X和Linux.我想选择一种旨在简化便携性和清晰度的方法 - 但最重要的是正确性.我是否过度思考这个,或者是否有一个"最佳"或"最推荐"的方法来初始化这个变量类型,对于我抛出的任何特定值(当然,它在其范围内)?
我有一个函数,它分叉一个进程,复制输入和输出缓冲区的文件描述符,然后运行execl一个通过一个名为cmd:
static pid_t
c2b_popen4(const char* cmd, int pin[2], int pout[2], int perr[2], int flags)
{
pid_t ret = fork();
if (ret < 0) {
fprintf(stderr, "fork() failed!\n");
return ret;
}
else if (ret == 0) {
/*
Assign file descriptors to child pipes (not shown)...
*/
execl("/bin/sh", "/bin/sh", "-c", cmd, NULL);
fprintf(stderr, "execl() failed!\n");
exit(EXIT_FAILURE);
}
else {
/*
Close parent read and write pipes (not shown)...
*/
return ret;
}
return ret;
}
Run Code Online (Sandbox Code Playgroud)
cmd只要我的测试输入正确,每个实例都会正确处理我的数据. …
我想提高Python脚本的性能,并一直cProfile用于生成性能报告:
python -m cProfile -o chrX.prof ./bgchr.py ...args...
Run Code Online (Sandbox Code Playgroud)
我chrX.prof用Python 打开了这个文件pstats并打印出统计信息:
Python 2.7 (r27:82500, Oct 5 2010, 00:24:22)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pstats
>>> p = pstats.Stats('chrX.prof')
>>> p.sort_stats('name')
>>> p.print_stats()
Sun Oct 10 00:37:30 2010 chrX.prof
8760583 function calls in 13.780 CPU seconds
Ordered by: function name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.000 0.000 {_locale.setlocale} …Run Code Online (Sandbox Code Playgroud) gcc ×3
python ×3
c ×2
iphone ×2
powerpc ×2
architecture ×1
atlas ×1
callback ×1
cprofile ×1
exec ×1
fadein ×1
fadeout ×1
fork ×1
html ×1
int64 ×1
jquery ×1
lapack ×1
macos ×1
makefile ×1
memory ×1
numpy ×1
osx-lion ×1
performance ×1
pid ×1
popen ×1
profile ×1
profiling ×1
python-2.7 ×1
stream ×1
uiwebview ×1
xcode ×1