我有个问题, 为什么 anaconda 的时候还要用 virtualenv? - V2EX
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 10674 次点击
    这是一个创建于 2716 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在用最新版 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
    &nbp;   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     Solana     2494 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 04:25 PVG 12:25 LAX 20:25 JFK 23:25
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86