使用cppimport / pybind11时出现Unicode问题

时间:2020-05-28 11:22:29

标签: c++11 unicode pycharm pybind11

根据作者的example,我正在尝试使用cppimport(一个基于pybind11的库)将某些* .cpp文件直接导入python。

我正在使用Pycharm和python 3.7,同时安装了cppimport和pybind11,win10。
使用cppimport可以很容易地导入代码。

import cppimport.import_hook
import DemoTrade

然后我出错了

mako.exceptions.CompileException: Unicode decode operation of encoding 'ascii' failed in file 'C:\Users\...\DemoTrade.cpp' at line: 0 char: 0

文件地址正确,否则会出现另一个错误

问题似乎出现在文件编码中,我更改了其他编码,但没有任何改善。
我不知道该如何处理。谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

由于cppimport基于pybind11和mako,因此这是一个mako问题。

在cppimport lib中的

,找到templating.py。

然后在mako.template.Template()中添加所需的编码。以下是一个示例

mako.template.Template(filename = filepath, lookup = lookup,
                      input_encoding='gb2312', output_encoding='gb2312') 

然后解决。