V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AllenBigBear
V2EX  ›  程序员

小白求教关于 Conda 的环境使用问题

  •  
  •   AllenBigBear · 2019-05-17 23:49:08 +08:00 · 2766 次点击
    这是一个创建于 2017 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这几天没事在琢磨 conda 的使用问题。看了非常多的帖子,包括 v2 站内的帖子,但还是有些搞不明白。

    环境:Macos

    IDE:Pycharm

    默认 Python 版本:Python3.7

    问题: 1:已经理解了,conda 的关键作用是可以创建不同版本的 python 的环境。 但是比如我有项目 A,项目 B,项目 C,三个项目,同时用 python3.7 进行开发。 那我如果同时将这 3 个项目的解释器都设置为 conda 下面 Python3.7 解释器,开发过程中会发生 conda 本身环境污染这种情况吗?(我目前认为肯定没必要设置 3 个 3.7 的解释器吧?不然 conda 就没有意义了)

    2:如果我新建了 conda 环境,比如 python3.5 的环境,那么新的环境里面基本上是没有什么包的,等于是干净的,那我如果需要安装一些包,这些包会需要像之前 pip 安装一样去下载吗?还是说会从 conda 的主环境(某种缓存?)去拖过来?

    3:使用了 conda 以后,打开终端 terminal,显示的环境是( base ),不知道这个对平时日常的 mac 操作是否有什么影响?

    希望大家指教!谢谢

    4 条回复    2019-05-18 11:26:34 +08:00
    messyidea
        1
    messyidea  
       2019-05-18 00:28:34 +08:00
    我用的是 pyenv 装的 conda,都用 pyenv 来控制。
    1.如果都设置同一个 python3.7 会污染,可以用 pyenv-virtualenv 来解决。
    2.包会缓存。
    3.这个没影响,只是当前环境下的 python 变了
    clavichord93
        2
    clavichord93  
       2019-05-18 00:32:44 +08:00
    其实你压根就没理解“环境”这玩意到底是干嘛的。。。环境是用来解决不同的项目开发过程中,需要的包依赖及其版本不同,导致冲突的问题,这里面不光是 python 版本不同,也包括相同的 python 版本但是某些包的版本不同。至于你说的创建不同版本的环境,pyenv+virtualenv 一样可以解决,而 conda 的优势在于可以在环境中把 python 之外的语言的依赖也同时进行管理,而劣势在于处理依赖关系比较慢和包相对 pypi 较少。

    然后是你的问题。

    1. 你开发过程中如果 conda install 或者 pip install 了某些包,那肯定后改变环境,至于算不算污染,你自己判断吧。如果你没有 install 别的包,那就不会改变。

    2. conda create 产生的环境是空的,只有必要的几个包,至于其它的,需要 conda install -n 来重新安装。如果你之前安装过,conda 应该会从 pkgs 里面直接读吧。

    3. 不会。只是告诉你当前环境是什么。

    3.
    AllenBigBear
        3
    AllenBigBear  
    OP
       2019-05-18 10:54:19 +08:00 via iPhone
    @clavichord93 嗯,谢谢耐心的回复。
    还想请教下。打个比方您说的对各个包的版本依赖不同这一点。

    举个例子:我还是有三个项目 A,B,C,都是在 python3.7 下面开发 django,但是分别依赖于 django1.0 django1.5 django2.0 (只是举例子,而且我们假设三个 django 版本会有冲突),那这样的情况下我是不是要设置三个 python3.7 的环境了?
    clavichord93
        4
    clavichord93  
       2019-05-18 11:26:34 +08:00 via iPhone
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1948 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:41 · PVG 08:41 · LAX 16:41 · JFK 19:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.