我正在从事游戏项目。我使用 python 2.7.2 编写脚本。我的应用程序在 .exe 的非 unicode 路径下运行良好。但它无法使用 unicode 路径加载脚本 boost::python::import (import_path.c_str());
我试过这个例子 5.3.纯嵌入 http://docs.python.org/extending/embedding.html#embedding-python-in-c
它也不能处理 unicode 路径。我将 python 链接为 dll。 请向我解释如何处理这样的路径。
最佳答案
boost::python::import
需要一个 std::string
,因此 import_path
可能会遗漏一些字符。
您必须在多个平台上工作吗?在 Windows 上,您可以调用 GetShortPathName检索 8.3 文件名并使用它来加载您的 dll。
你可以做一个快速测试:
- 将您的扩展重命名为“JaiDéjàTestéÇaEtJaiDétestéÇa.pyd”。
- 在命令行中,键入
dir/x *.pyd
以获取短文件名(JAIDJT~1.PYD 在我的计算机上) - 使用短名称加载您的扩展程序。
+上面的文件名,如果是法语,意思是“我已经测试过了,但我不喜欢它”。这是一首韵律,它让使用 Unicode 变得更有优势 ;)
关于c++ - Boost-Python:在路径中加载带有unicode字符的python模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9099439/