小编Pao*_*ati的帖子

你如何用Mingw编译python 3.5代码?

我花了相当长的时间今天尝试编译PYD为python 3.5windows 10使用与生成的代码cython.我知道有人可以这样做,MSVS但我想使用,mingw因为我不想下载太多的垃圾.我已搜索周围,我发现这太问题:如何从用Cython编译.C代码用gcc 我试图按照公认的答案(改变一切Python27'sPython35),但没有用.我看到它确实python 2.7有用,所以我想知道为什么它不能正常工作3.5.如果有人能帮助我解决这个问题,那将是非常棒的.提前致谢.

python windows mingw python-3.5

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

无法在 Boost Python 中返回类的实例

我正在尝试返回 C++ 类的实例并使用 Boost.Python 将其返回给 Python。我想做的是有这样的代码:

class foo {
    std::string name;
    public:
    void set_name(std::string name) {this->name = name;}
    std::string get_name() {return this->name;}
};
class bar {
    public:
    foo get_foo(std::string name) {
        foo my_foo;
        my_foo.set_name(name);
        return my_foo;
    }
};
Run Code Online (Sandbox Code Playgroud)

我用以下内容包裹它:

BOOST_PYTHON_MODULE(foobar)
{
    class_<foo, boost::noncopyable>("foo")
    .def("set_name", &foo::set_name)
    .def("get_name", &foo::get_name)
;

    class_<bar, boost::noncopyable>("bar")
    .def("get_foo", &bar::get_foo);
 }
Run Code Online (Sandbox Code Playgroud)

您可能也注意到了,我需要 foo 和 bar 都是不可复制的,因为在实际项目中,里面有套接字。当尝试编译上面的内容时,我收到一个 Python TypeError:

TypeError: No to_python (by-value) converter found for C++ type
Run Code Online (Sandbox Code Playgroud)

我用Python这样调用它:

Python 3.6.1 (default, Mar 22 2017, 06:17:05) 
[GCC 6.3.0 20170321] …
Run Code Online (Sandbox Code Playgroud)

c++ python boost class boost-python

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

标签 统计

python ×2

boost ×1

boost-python ×1

c++ ×1

class ×1

mingw ×1

python-3.5 ×1

windows ×1