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
capbone
V2EX  ›  Python

用 PyCharm + Anaconda 做科学计算时正确的包管理逻辑应该是怎么样的?

  •  
  •   capbone ·
    qiujueqin · 2019-01-22 17:49:49 +08:00 · 2788 次点击
    这是一个创建于 2127 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前用 Python 做过几个图像处理相关的项目,当时在 PyCharm 中没有特别关注解释器的选择,一般都是用 conda 创建一个 new env 然后再在里面安装所需的包。但是今天无意中看了一下 Anaconda 的安装目录,里面 envs 文件夹下基本每个子文件夹都有 1G 多大,而且每个项目的 Lib\site-packages 目录下基本都包含了重复的包,比如 numpy、matplotlib 这些,感觉既浪费硬盘空间,也让每个项目变得很臃肿。

    我想请问下,如果假设我创建的所有项目都是基于同一个 Python 版本的,是否存在一种解决方案,能够在让所有项目共享一部分常用的包(比如 numpy、scipy 等等)的基础上,又允许为每个项目单独指定一些包?举个例子,我之前在 Anaconda prompt 中安装了 tensorflow,但是最近我想新建一个项目用来练手 pytorch,能不能让这个项目中不再出现 tensorflow 这个包?

    PS:还有一个问题,PyCharm 的 Setting -> Project -> Project Interpreter 中,最右边有一个 Anaconda logo 的绿色小圈圈,写着 Use Conda Package Manager,这个到底应不应该勾选呢?

    6 条回复    2019-01-23 12:45:39 +08:00
    SeaRecluse
        1
    SeaRecluse  
       2019-01-22 17:58:40 +08:00
    环境隔离一般是针对不同软件版本带来的问题的吧(比如 py2,py3 ),既然你基础环境相同,就直接 conda install 呗
    clavichord93
        2
    clavichord93  
       2019-01-22 19:12:13 +08:00 via iPhone
    我选择 conda 装 env 然后在 env 里面用 pip 装包
    Rubbly
        3
    Rubbly  
       2019-01-22 19:28:52 +08:00
    由于 python 不同包之间的依赖关系,anaconda 并不支持已安装包的共享,只是会利用一些 cache 来省去二次下载的过程或者初始环境时的 clone 功能。
    一开始用 Anaconda 的时候,我也是习惯一个框架一个环境,后来磁盘空间实在窘迫,就还是按照 python 版本划分了两个子环境,用到现在也觉得没必要再细分了。另外 Use Conda Package Manager,这个应该对应的是这个 button 上面的那个+号之类的功能吧... 无关紧要了,反正也是命令行安装。
    capbone
        4
    capbone  
    OP
       2019-01-23 07:57:21 +08:00
    @SeaRecluse @clavichord93 @Rubbly 呃... 你们都是用命令行来装包吗?我是直接在 PyCharm 里面用那个 GUI 来搜索然后安装,这样是不是有什么问题?
    @Rubbly 所有项目都共享一个环境的话,时间长了会导致堆积了很多不必要的包吧,而且版本间可能也会有些冲突。关键是我使用的其中一台机器配置不高,每次打开 PyCharm 非常慢,indexing 的时间非常长,我担心共用一个环境的话可能会拖慢 PyCharm 更多...
    SeaRecluse
        5
    SeaRecluse  
       2019-01-23 09:09:36 +08:00
    @capbone sublime text/vscode 欢迎你😂
    Rubbly
        6
    Rubbly  
       2019-01-23 12:45:39 +08:00
    @capbone 因为经常会在服务器上操作,所以一切环境配置的事都很少用图形页面去做了。至于 PyCharm,根据我的经验,只有在对环境进行更改后,才会进行一次 re-indexing,平时打开应该只是读取了某个 table ?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1433 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:28 · PVG 01:28 · LAX 09:28 · JFK 12:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.