本讲相关链接
1. 使用 ctypes 库加载 C++ 编写的动态链接库,参考链接:https://docs.python.org/zh-cn/3.10/library/ctypes.html
2. 使用 pybind 将 C++ 编译为 Python 库,参考链接:https://github.com/pybind/python_example
3. 使用 Pythran 库将 Python 直接转换为 C++ 代码,参考链接:https://pypi.org/project/pythran
课后习题
请你基于 Pythran 编写一个计算圆周率的 Python 函数,并使用 C++ 调用该函数,运行后,比较一下纯 Python 代码和 C++ 代码的运行时间。
课程代码、课件及其他相关资料地址
https://gitee.com/wilsonyin/zero-basics-python
作者回复: ChatGPT是个好帮手,相比搜索引擎,它能继续追问,是我觉得学习编程时非常有用的功能, 但是务必要让ChatGPT编写测试用例,有时候ChatGPT提供的代码有bug,不够精确。这一点不要被ChatGPT误导
作者回复: 默认会安装在site-packages下,而且site-packages在python安装后会自动加入到命令搜索路径, 所以视频中安装后直接可以使用。 如果无法运行,你可以尝试先关闭终端,再打开,重新加载终端是否可行 另一个办法就是手动解决,通过python -m site 找到site-packages文件夹, 再找到pythran所在的路径,将路径加入 windows 环境变量的PATH中,仍然要重启终端生效
作者回复: 这里就不得不看 cal_pi() 函数的C++ 实现方法了, 里面可能有某些“潜在规则”导致转换之后出错, 比如Python对待某个变量是浮点数,但是转换成C++代码时,被当做了整数,就出现结果不精确的问题,解决办法是显示的使用float(变量),确保转换时不要被C++曲解成int()数据类型