美文网首页
python 项目管理

python 项目管理

作者: 二十岁的弹簧 | 来源:发表于2019-03-04 11:50 被阅读0次

作者:杨博
链接:https://www.zhihu.com/question/41974592/answer/346158644
来源:知乎

先说答案,你这个问题应该用Anaconda Project。但光靠Anaconda Project可能也不够。

在Python世界,虽然有很多工具可以搞一点依赖管理,但每一个工具都不能解决全部问题。

  • pip可以管理Python依赖,但是pip包都是源码包,得在安装时编译,常常由于系统环境的原因而编译失败。此外pip也不能用来安装官方版的opencv这样的原生库。

  • pyenv可以管理Python版本

  • Virtualenvvenv可以创建虚拟环境,让多个项目之间的Python依赖隔离开,不会在项目之间冲突。

  • pipenv把pip、pyenv和virtualenv的功能整合到一起,但是仍然没有解决源码编译的问题和原生库的安装问题。

  • Conda是个包管理器,可以支持二进制包,所以不需要安装时从源码编译了,而且也可以装原生库。但是,一些 pip 里的 Python 库在 conda 里找不到。

  • Anaconda是用Conda管理的Python科学计算发行版

  • Conda Forge是另一个Python发行版,要比Anaconda的包更丰富。但这里有个坑就是Conda Forge和Anaconda并不完全兼容,如果你有一个项目同时用到Anaconda和Conda Forge里的包,有可能会挂。

  • Anaconda Project可以在一个项目里创建多个虚拟环境,既可以管理conda依赖,也可以管理pip依赖,但还是缺了CUDA这样的系统包和一些命令行工具。

  • Apt之类的系统包管理工具可以安装系统包,但是会受到操作系统发行版的限制,比如说Ubuntu 14.04里就装不了CUDA 9。

  • Docker可以在容器里装一个操作系统发行版,从而可以方便的切换操作系统版本。但是容器和宿主必须要共享操作系统内核,所以没办法在macOS直接运行Linux发行版的docker容器。

  • nvidia-docker可以把宿主的GPU设备文件和驱动挂载到Docker容器里,但是只支持Linux。

这些工具解决的问题虽然不完全一样,但也有一部分重叠。我具体给一点建议:

  1. 如果临时写几行不在项目里的代码,用操作系统全局的 Anaconda 环境。
  2. 如果需要创建多个数据挖掘或科学计算的项目,那么用 Anaconda Project 隔离这些项目,不要用pipenv。
  3. 如果需要创建多个Python网站的项目,那么用 pipenv 隔离这些项目,不要用 conda。
  4. 用Anaconda Project管理的项目中,如果需要安装纯Python库,优先用pip包,如果是需要额外编译的库,优先用conda包。
  5. 如果需要隔离系统环境,用Linux版的Docker,在容器里安装系统依赖。
  6. conda和Linux发行版都有的二进制包,优先用conda装。因为发行版发布周期慢,版本旧。

相关文章

  • Python项目管理: Poetry

    Python项目管理: Poetry 1. 导读 本文将介绍一个目前十分流行,且用于众多Python项目中依赖管理...

  • Python项目环境管理和依赖管理

    Python版本管理 不同的python项目可能依赖不同的python解释器,想要在同一电脑上运行多个项目,就需要...

  • python项目管理

    使用virtualwrapper管理多个项目的虚拟环境 生成requirements.txt依赖 安装requir...

  • python 项目管理

    作者:杨博链接:https://www.zhihu.com/question/41974592/answer/34...

  • python 依赖管理简介

    python 虽然好用,但是项目一多,依赖的管理就是个大问题了,新项目已经全在用 python3,而老项目都是 p...

  • Python环境搭建并运行项目

    一、python环境搭建 项目用的是python3,我这边用的是anaconda来管理python环境。 1、介绍...

  • 后台管理

    1.在项目中,创建后台管理python manage.py createsuperuser

  • python 收藏链接

    python主题 深刻理解Python中的元类 使用pipenv管理你的项目 Python-基础-数据结构小结 P...

  • Flask后台+umi前端在BT宝塔面板部署的方法 v1.0

    1.首先部署后端项目。 安装Python项目管理器 安装完成之后,选择python版本进行安装: 然后就可以添加p...

  • 项目介绍(一)

    开发环境: python: 3.6.4Django: 2.0.2后台管理:xadmin 项目介绍 系统概括 系统...

网友评论

      本文标题:python 项目管理

      本文链接:https://www.haomeiwen.com/subject/rkibuqtx.html