V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
darouwan
V2EX  ›  Python

我有个问题, 为什么 anaconda 的时候还要用 virtualenv?

  •  
  •   darouwan · 2018-07-22 10:31:10 +08:00 · 10225 次点击
    这是一个创建于 2307 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在用最新版 pycharm 的时候, 配置了 anaconda3, 但默认还要新建 virtualenv. 但新建之后, 里面的 python3 环境是完全干净的, 并没有 anacaonda 的那些科学计算库, 那为什么 anaconda3 还需要使用 virtualenv 呢?有什么好处吗?

    22 条回复    2018-07-24 16:18:44 +08:00
    hu6360567
        1
    hu6360567  
       2018-07-22 10:35:44 +08:00 via Android
    你说的是 condaenv 还是 virtualenv ?
    darouwan
        2
    darouwan  
    OP
       2018-07-22 11:17:36 +08:00
    @hu6360567 virtualenv, conda 的话有什么区别嘛
    ddzzhen
        3
    ddzzhen  
       2018-07-22 11:21:17 +08:00 via Android
    环境配置没有选好路径,不用管自动新建的那个
    bucky
        4
    bucky  
       2018-07-22 11:44:52 +08:00
    anaconda 和 virtualenv 两个没关系,anaconda 功能更多一些,也包括创建虚拟环境
    est
        5
    est  
       2018-07-22 11:47:14 +08:00
    anaconda3 是一个母仓库,用 venv 建立多个平行的子工作环境。
    kingcos
        6
    kingcos  
       2018-07-22 12:45:58 +08:00 via iPhone
    两个没关系吧,Pycharm 能选择的
    zhusimaji
        7
    zhusimaji  
       2018-07-22 14:13:55 +08:00 via iPhone
    虚拟环境和 anaconda 没啥关系,我以前用 anaconda2.7 后来项目全部使用 3.6 所以我直接新建个个虚拟环境方便快捷
    dartabe
        8
    dartabe  
       2018-07-22 15:26:43 +08:00
    同样被这几个东西绕晕了 网上也没找到太简洁的答案
    xiaozizayang
        9
    xiaozizayang  
       2018-07-22 17:57:04 +08:00
    你可以这样想也这样用,但用 env 的目的是在一个 anaconda 大的版本下建立力度更小的虚拟环境
    比如 10 个项目依赖 py3.6,你不用用 anaconda 建立十个 py3.6 版本项目环境,你可以只用建立一个 py36 的环境,然后基于这个 3.6 版本建立十个虚拟环境,比如使用 pipenv 进行管理
    xiaozizayang
        10
    xiaozizayang  
       2018-07-22 17:58:05 +08:00
    @est 你说得对
    darouwan
        11
    darouwan  
    OP
       2018-07-22 21:00:23 +08:00
    @est 这个我知道,但是用 virtualenv 新建的仓库是空的,没有 anaconda 的那些包, 这样使用 anaconda 的意义何在呢?
    darouwan
        12
    darouwan  
    OP
       2018-07-22 21:01:07 +08:00
    @kingcos 只是我看默认是新建虚拟库, 但新建的虚拟库并没有 anaconda 的第三方计算包, 不知道这样的意义何在
    darouwan
        13
    darouwan  
    OP
       2018-07-22 21:01:54 +08:00
    @xiaozizayang 但是这小的虚拟环境, 我看并没有继承 anaconda 的包, 既然这样, 为何不直接用干净的 python 呢
    darouwan
        14
    darouwan  
    OP
       2018-07-22 21:02:42 +08:00
    @zhusimaji 我也觉得没关系...但默认是使用虚拟环境, 所以我觉得这应该有什么意义把
    ayang23
        15
    ayang23  
       2018-07-22 22:21:31 +08:00
    你们的 anaconda 可以建 virtualenv ?我试了好多次都不可以
    bucky
        16
    bucky  
       2018-07-22 22:45:00 +08:00
    @darouwan 大哥,都说了这两个没关系,anaconda 的好处是不仅能创建虚拟环境,还能创建不同版本( 2,3 )的 python 虚拟环境,同时 windows 下有些包用 anaconda 更加容易安装,创建虚拟环境用下面的命令
    conda create -n your_env_name python=X.X(2.7、3.6 等)
    xyfan
        17
    xyfan  
       2018-07-22 23:19:20 +08:00
    按我的理解,anaconda 里面集成了许多常用的包,这些包很常用,并且相互可能有依赖,如果都自己安装要花很多时间,所以给你了一个集成各种常用包的安装文件,基本不需要自己 pip 或 conda 了,当作科学计算的环境。env 是 pycharm 默认配置的,pycharm 写可能给别人用的项目,自然包越少越好,这样拿到其他环境可以确定只需要某某几个包就能正常运行,而不是说我电脑上有几百个包,你全装一遍肯定能运行。
    你要是用 jupyter,spyder,vscode 都不会让你新建虚拟环境。
    ilotuo
        18
    ilotuo  
       2018-07-22 23:41:20 +08:00
    我的理解是
    virtualenv 用来创建最小环境. 只带标准库. 不同环境是不同容器. 不同环境安装的软件互相版本独立.
    pyenv 能用 virtualenv 创建环境, 并指定解释器版本.
    conda 同 pyenv, 能指定解释器. 是用 virtualenv 创建的环境, 并在此环境安装好科学计算库.
    sw0rd3n
        19
    sw0rd3n  
       2018-07-22 23:47:27 +08:00
    刚装好 conda 手贱 rm 删了...
    darouwan
        20
    darouwan  
    OP
       2018-07-24 07:46:30 +08:00
    @bucky 那等于说, 这里建立虚拟环境, 主要是用 anaconda 方便建立各种版本的环境的这个特点, 而跟自带的各种科学库没关系?
    bucky
        21
    bucky  
       2018-07-24 08:18:00 +08:00 via Android
    @darouwan 对呀,Python 创建虚拟环境的方法太多了,而且多多少少都有点问题,用 anaconda 最统一,最省心,不管 win 还是 Linux 下都没有问题,同时在 win 下安装包的时候用 anaconda 比 pip 安装要好一些,pip 有时候会安装失败,所以使用 anaconda,学习 conda 命令是最划算的,否则那么多创建虚拟环境的工具,别说用了,就是选择用哪个都要花费你不少时间,最近好像又出了新的工具。anaconda 还有 minianaconda 这个版本,不用科学计算,安装这个就可以,小很多,好像几十兆吧
    darouwan
        22
    darouwan  
    OP
       2018-07-24 16:18:44 +08:00
    @bucky 这样~最近正在安装人脸识别的一个包,没 Windows 版, 真麻烦啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1263 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 18:14 · PVG 02:14 · LAX 10:14 · JFK 13:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.