使用 cppimport/pybind11 时的 Unicode 问题
Unicode problem when using cppimport/pybind11
根据作者的 example,我正在尝试使用基于 pybind11 的库 cppimport 将一些 *.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
文件地址要正确,否则会报错
问题好像出在文件的编码上,我换了其他编码,但没有任何改善。
我不知道该如何处理。感谢您的帮助。
由于cppimport是基于pybind11和mako的,所以这是一个mako问题。
在 cppimport 库中,找到 templating.py。
然后在mako.template.Template()中添加你想要的编码。下面是一个例子
mako.template.Template(filename = filepath, lookup = lookup,
input_encoding='gb2312', output_encoding='gb2312')
那就解决了。
根据作者的 example,我正在尝试使用基于 pybind11 的库 cppimport 将一些 *.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
文件地址要正确,否则会报错
问题好像出在文件的编码上,我换了其他编码,但没有任何改善。
我不知道该如何处理。感谢您的帮助。
由于cppimport是基于pybind11和mako的,所以这是一个mako问题。
在 cppimport 库中,找到 templating.py。
然后在mako.template.Template()中添加你想要的编码。下面是一个例子
mako.template.Template(filename = filepath, lookup = lookup,
input_encoding='gb2312', output_encoding='gb2312')
那就解决了。