cython.parallel.parallel和nogil写入文件

我正在用Cython弄湿我的脚.考虑我一个完全菜鸟.写入非常大的文件是代码中的主要瓶颈,因此我认为应该研究并行性,但是我找不到任何有用的东西来编写具有并行性的文件.

甚至可以使用

with nogil, parallel():

写入文件的声明?尝试编写字符串时出现编译错误:

Constructing Python tuple not allowed without gil

解决方法:

您不能在nogil块中使用任何Python函数或对象.如果要使用nogil进行文件IO,则必须使用C.blog post可能会为您提供帮助.具体来说,您可以从stdio导入常用的C函数.这些功能应该在nogil块中可用.以下是我上面链接到的博客文章:

from libc.stdio cimport *

cdef extern from "stdio.h":
    FILE *fopen(const char *, const char *)
    int fclose(FILE *)
    ssize_t getline(char **, size_t *, FILE *)
上一篇:这个加速包让 Python 代码提速 30 倍


下一篇:python-如何在cython中编译多个文件