小编col*_*fer的帖子

如何打包分发使用共享库的python模块?

我正在为C库编写一些绑定,并且我不确定如何配置所有这些以进行分发,因此可以使用pip install我的包.

假设我有以下文件:

  • library.c
  • library.h
  • wrapper.py

为了使我的包装器库工作,有必要:

  • 编译library.c并创建一个共享库
  • 运行ctypesgenlibrary.h生成ctypes的代码

以下是命令:

  • gcc -Wall -fPIC -c library.c
  • gcc -shared -Wl,-soname,liblibrary.so.1 -o liblibrary.so.1.0 library.o
  • ctypesgen.py library.h -L ./ -l library -o _library.py

运行setup.py还取决于已安装的用户ctypesgen.

我不知道如何设置这一切,以便对图书馆感兴趣的人可以简单地pip install library自动完成所有这些.有人能帮忙吗?

python ctypes distutils setuptools

9
推荐指数
1
解决办法
1061
查看次数

具有多列唯一约束名称的 PostgreSQL ON CONFLICT

我在尝试UPSERT使用 PostgreSQL时遇到了我不明白的行为。该文件似乎表明,冲突的目标中的INSERT语句可以是一个索引表达式约束的名称。但是,当尝试引用约束名称时,出现“列...不存在”错误。

我的第一次尝试是创建一个UNIQUE索引,它可以很好地与约束推断配合使用:

create table kv (key text, value text, extra text);
create unique index kv_key_value on kv(key, value);
insert into kv (key, value) values ('k1', 'v1');
-- this works:
insert into kv (key, value, extra) values ('k1', 'v1', 'e1')
  on conflict (key, value) do update set extra=excluded.extra;

-- this does not
insert into kv (key, value, extra) values ('k1', 'v1', 'e1')
  on conflict (kv_key_value) do update set extra=excluded.extra;
Run Code Online (Sandbox Code Playgroud)

描述上表,我在“索引”下看到以下内容: …

sql postgresql upsert

8
推荐指数
1
解决办法
4697
查看次数

使用Cython从标题导出常量

我正在使用Cython来包装C库.C库的头文件定义了许多常量,所以在我的cython模块中,我有类似的东西:

cdef extern from "lib.h":
    cdef int CONST_A = 0
    cdef int CONST_B = 1
Run Code Online (Sandbox Code Playgroud)

当我编译扩展时,常量在Python中不可用.我尝试过这样的事情,但似乎没有用:

cdef extern from "lib.h":
    cdef int CONST_A = 0
    cdef int CONST_B = 1

CONST_A = CONST_A
CONST_B = CONST_B
Run Code Online (Sandbox Code Playgroud)

关于如何在Python中提供这些常量的任何想法?

c python cython

6
推荐指数
1
解决办法
1199
查看次数

KyotoCabinet和多个流程?

我已经阅读了文档,发现很少有关于访问单个kyotocabinet数据库的多个进程(读者和编写者).看来您可以创建多个读取器,但除非您指定ONOLOCK,否则多个编写器将阻止尝试打开数据库.任何人都可以阐明它是如何工作的或是否有可能?我知道KyotoTycoon是一个选择,但我特别关注KyotoCabinet.

tokyo-cabinet nosql kyotocabinet

5
推荐指数
1
解决办法
1939
查看次数

我如何在python中缩放二维数组?

我不知道如何扩展二维数组.鉴于下面的数组,其尺寸为8x10,说我需要将其缩放到5x6 - 我在维基百科上寻找了具体的例子,但是在矩阵数学中没有多少基础我有点迷失.如果有人能指出我正确的方向,我真的很感激!

[
 [0, 0, 1, 1, 1, 1, 0, 0],
 [0, 1, 1, 1, 1, 1, 1, 0],
 [0, 1, 0, 0, 0, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 1, 1],
 [0, 0, 1, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1, 1, 1, 1],
 [1, 1, 0, 0, 0, 0, 1, 1],
 [1, 1, 0, 0, 0, 1, 1, 1],
 [1, 1, 1, 1, 1, 1, 1, 1],
 [0, 1, 1, 1, …
Run Code Online (Sandbox Code Playgroud)

python matrix

4
推荐指数
1
解决办法
8917
查看次数