支持2个Python2和Python3的模块构建

时间:2020-03-19 16:35:03

标签: python python-3.x python-2.x

am为Python定义了一种新类型。我想添加对这两个建筑物(Python2和Python3)的支持。
python2 setup.py build
python3 setup.py build
我创建了一个函数,将我的类型转换为字符串表示形式(在Python2中)。

PyObject *
pyfloat_str(PyObject *self)
{
    char str[128];
    int st;
    ieee754 q = ((PyFlt*)self)->obval;

    st = snprintf(str, sizeof(str), "%f", float(q));
    if (st < 0) {
        fprintf(stderr, "BAD\n");
    }
    return PyString_FromString(str);
}

但是在python3中PyString_FromString()未定义。相反,我们有PyUnicode_FromString()。正如我在开始时所说的,我想增加对这两个构建的支持。所以我正在寻找这样的东西。

PyObject *
pyfloat_str(PyObject *self)
{
    char str[128];
    int st;
    ieee754 q = ((PyFlt*)self)->obval;

    st = snprintf(str, sizeof(str), "%f", float(q));
    if (st < 0) {
        fprintf(stderr, "BAD\n");
    }

    #ifInvokedWithPython2Buidling
       return PyString_FromString(str);
    #else
       return PyUnicode_FromString(str);
}

执行此操作的正确方法是什么?

0 个答案:

没有答案
相关问题