我正在使用cppimport,这是一个有助于将cpp导入python的库。如此处所述:https://github.com/tbenthompson/cppimport,有必要将setup_pybind11放入cpp文件的/* */
中。
/*
<%
setup_pybind11(cfg)
%>
*/
看来,按照文档中的说明将其放入/* */
中时,从python导入cpp文件时它没有任何作用。但是,当我不使用/* */
时,在python上一切正常,但是后来我无法在Visual Studio中运行它。有什么建议我可以做什么?为什么必须从Python中删除/* */
才能正常工作?
答案 0 :(得分:5)
它由/*
和*/
包裹,因此从C ++角度来看,它是comment。
我想您的build automation正在同一C ++文件上运行其他程序。
但是我无法再从Visual Studio中运行它。
也许可以考虑使用和配置一些更好的构建自动化。我想到了ninja或omake或旧的GNU make
之类的工具。当然,您可以将它们配置为运行cppimport魔术(请完整阅读其README)。
大多数C ++编译器都是由命令行驱动的。查看GCC或Clang。两者都存在于Windows上(因为我使用Linux,所以我从未使用过)。
从python导入cpp文件时无效。
但是您不 "import"。根据{{3}}您import cppimport
,而不是您的C ++文件:
打开python解释器并运行以下行:
>>> import cppimport >>> somecode = cppimport.imp("somecode") #This will pause for a moment to compile the module >>> somecode.square(9)
PS。我不是英语母语人士,而且我从未使用过Python(我更喜欢README的Guile与Python相似的语言,而我认为semantics更好,更简洁,有关更多信息,请参见syntax和R5RS。但是,当文件名为README
时,我将完整阅读它。