C++开发(五)
💡
原文中文,约3400字,阅读约需8分钟。
📝
内容提要
本文讨论了C++和Python开发中的细节,包括pytest中的conftest.py文件作用、import语句注意事项、pip和python setup.py命令的使用方法、高级功能和选项,以及构建目录和相对导入。
🎯
关键要点
- pytest中的conftest.py文件在tests目录下的作用类似于GoogleTest中的夹具。
- Python的import语句要求导入的模块或包必须实际存在,不能仅仅导入命名空间。
- 可以通过环境变量控制是否安装扩展模块,使用build_ext扩展实现。
- pip会自动管理依赖关系,并确保在安装包之前安装所有依赖项。
- pip会优先使用已构建好的wheel文件进行安装,若无则从源码构建。
- pip默认使用临时隔离环境进行构建,避免污染全局Python环境。
- 直接调用setup.py的install命令不会管理依赖项,需手动确保依赖已安装。
- setup.py install直接从源码构建,安装速度较慢,且不在隔离环境中运行。
- python setup.py install的使用逐渐减少,官方建议使用pip进行安装。
- 构建的Cython模块默认放在build目录中,使用--inplace选项可将其放在源代码目录。
- Cython的构建较为复杂,建议在setup.py中重写build_ext的run方法以确保正常构建。
- Python的相对导入仅支持同一大包下的模块间导入,不支持外部包间的相对导入。
➡️