使用cppimportpybind11时出现Unicode问题。

问题描述 投票:0回答:1

我想用cppimport这个基于pybind11的lib直接将一些*.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

文件的地址是正确的,否则会给出另一个错误信息

问题似乎出在文件的编码上,我换了其他编码,但没有任何改善。我不知道如何处理这个问题。谢谢你的帮助。

c++11 unicode pycharm pybind11
1个回答
0
投票

由于cppimport是基于pybind11和mako的,所以这是mako的问题。

在cppimport库中,找到templating.py。

然后在mako.template.Template()中添加你想要的编码。以下是一个例子

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

那就解决了。

© www.soinside.com 2019 - 2024. All rights reserved.