小编Ale*_*lds的帖子

Python Popen.communicate()内存限制的替代方案?

我有以下大量的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

我应该注意,我需要处理输出和错误流.

python memory stream popen

19
推荐指数
2
解决办法
5238
查看次数

如何为32位和64位创建单个makefile?

我有一个makefile透明的Linux(x86_64)和OS X Intel(x86_64).这使用64位特定GCC选项.

有没有办法调整makefile,以便我可以构建32位和64位OS X PPC(ppc,ppc64),而无需维护单独的,特定于arch的makefile - 可能类似于预处理器指令,可以确定建筑前的建筑?

architecture gcc makefile powerpc

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

如何在Lion下的Xcode 4.2中添加PPC/PPC64支持?

我有一个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)

macos xcode gcc powerpc osx-lion

16
推荐指数
1
解决办法
5692
查看次数

iPhone - 是否可以在UIWebView中隐藏原生滚动条?

我想隐藏滚动UIWebView时出现的本机滚动条/滚动条,但仍保持滚动功能不变.这可能吗?

提前致谢,

威廉

iphone uiwebview

15
推荐指数
3
解决办法
2万
查看次数

将NSObject转换为NSData

我在转换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.

任何帮助将不胜感激 ...

等待您的回复 ...

iphone

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

如何缓慢淡出div,更新内容,然后使用jQuery缓慢淡入div?

div想要淡出,更新其内容,然后淡入.到目前为止,我尝试过:

$('#myDivID').fadeOut('slow', function() {
    $('#myDivID').replaceWith("<div id='myDivID'>" + content + "</div>");
    $('#myDivID').fadeIn('slow');
});
Run Code Online (Sandbox Code Playgroud)

发生的事情是淡出完成并调用匿名回调.到现在为止还挺好.

div的内容被正确地更换,但fadeIn()效果是立竿见影的-不平滑过渡,只是一个快速,活泼跳跃的更新div.

有没有更好的方法来实现这一目标?谢谢你的建议.

html jquery callback fadeout fadein

15
推荐指数
2
解决办法
3万
查看次数

使用ATLAS / LAPACK支持构建numpy

我正在尝试编译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)

python numpy lapack atlas python-2.7

15
推荐指数
1
解决办法
285
查看次数

哪个初始化程序适用于int64_t?

我喜欢将我的变量初始化为一些"虚拟"值,并开始使用int64_tuint64_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.我想选择一种旨在简化便携性和清晰度的方法 - 但最重要的是正确性.我是否过度思考这个,或者是否有一个"最佳"或"最推荐"的方法来初始化这个变量类型,对于我抛出的任何特定值(当然,它在其范围内)?

c gcc int64

13
推荐指数
2
解决办法
7938
查看次数

捕获子进程的退出状态代码

我有一个函数,它分叉一个进程,复制输入和输出缓冲区的文件描述符,然后运行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只要我的测试输入正确,每个实例都会正确处理我的数据. …

c fork pid exec

13
推荐指数
1
解决办法
3万
查看次数

这个cProfile结果是什么告诉我需要修复?

我想提高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)

python profile performance profiling cprofile

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