跨语言包管理:这是Conda相对于pip最大的区别。Conda既可以安装纯Python包,也可以安装非Python的二进制库。比方安装 CUDA Toolkit、MKL数学库、甚至Ubuntu的APT软件包(通过conda的子仓库)等。这对数据科学和机器学习很关键,由于许多盘算密集型库(如TensorFlow、PyTorch)都有复杂的二进制依赖,使用conda每每能一步到位安装好兼容的版本,而不需要用户手动处理惩罚系统库。Conda通过**频道(channel)**来管理包泉源,默认的官方频道和社区的conda-forge频道涵盖了绝大多数流行软件。
pip+venv vs Poetry: 假如你的项目还不大,依赖也简单,你可以先用pip共同venv来管理,方式朴素但透明。当项目渐渐扩大、依赖增多时,可以考虑迁移到Poetry来得到更好的管理本领。两者在本质上目的一致——都是创建隔离环境安装特定依赖——但Poetry提供了更多主动化和包管。假如团队已经有良好的pip惯例(好比使用pip-tools来锁依赖、每次更新都同步requirements),那么继承用pip也未尝不可。不外从长远看,Poetry等工具能够减少人为失误并进步效率。在团队协作项目中,许多人会直接跳过pip,使用Poetry或雷同工具来制止后患。