相关疑难解决方法(0)

我可以在python类中使用C++类作为超类

可能重复:
如何在Python中使用C++类?

我正在使用python设计一个软件,但是在使用python实现它时遇到了一些内存问题所以我打算用C++扩展我的软件.所以我想我可以使用C++定义的类并在python中使用它作为Superclass并覆盖它的一些方法吗?

c++ python

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

在 Python 中加载 C++ 类

我正在尝试在 Python 中导入 C++ 类。我知道我可以使用 BoostPython、SWIG 或 Cython,但出于教学目的,我尝试使用extern "C". 简而言之,我正在尝试复制这一点

我的环境是 Windows 10,使用 Anaconda 3 和 Python 3.6。我已经安装了 mingw64 4.8.3 作为 C/C++ 编译器。

这是我的foo.cpp

#include <iostream>
// A simple class with a constuctor and some methods...
class Foo
{
    public:
        Foo(int);
        void bar();
        int foobar(int);
    private:
        int val;
};
Foo::Foo(int n)
{
    val = n;
}
void Foo::bar()
{
    std::cout << "Value is " << val << std::endl;
}
int Foo::foobar(int n)
{
    return …
Run Code Online (Sandbox Code Playgroud)

c++ python dll

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

无法在 Python 中导入 dll 模块

几天来,我一直在努力在 Windows 上编译一个修改过的 libuvc 版本,现在我终于完成了,我似乎无法在 Python 上加载它。我已经在 Linux 机器上使用相同版本的 Python 编译并成功导入的这个库根本不喜欢 w10。

系统

  • 赢得 10 64 位
  • 蟒蛇 3.8 64 位
  • libusb 1.022
  • 使用 MinGW64 编译的 libuvc.dll

问题

当尝试

import ctypes
import ctypes.util
name = ctypes.util.find_library('libuvc')
lib = ctypes.cdll.LoadLibrary(name)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Could not find module 'C:\Program Files (x86)\libuvc\lib\libuvc.dll'.
Try using the full path with constructor syntax. 
Error: could not find libuvc!
Run Code Online (Sandbox Code Playgroud)

问题是该文件自 util.find_library 找到以来就存在,但 python 认为它不在它所在的位置,或者输出可能只是默认值。我在这里缺少什么?不仅无法加载模块,而且无法找到它,这可能是什么原因?对不起,我没有比这更多的输出。

PS:我尝试以不同的方式重新格式化字符串,但消息没有改变。

python windows winapi ctypes uvc

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

标签 统计

python ×3

c++ ×2

ctypes ×1

dll ×1

uvc ×1

winapi ×1

windows ×1