之前用 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,这个到底应不应该勾选呢?
1
SeaRecluse 2019-01-22 17:58:40 +08:00
环境隔离一般是针对不同软件版本带来的问题的吧(比如 py2,py3 ),既然你基础环境相同,就直接 conda install 呗
|
2
clavichord93 2019-01-22 19:12:13 +08:00 via iPhone
我选择 conda 装 env 然后在 env 里面用 pip 装包
|
3
Rubbly 2019-01-22 19:28:52 +08:00
由于 python 不同包之间的依赖关系,anaconda 并不支持已安装包的共享,只是会利用一些 cache 来省去二次下载的过程或者初始环境时的 clone 功能。
一开始用 Anaconda 的时候,我也是习惯一个框架一个环境,后来磁盘空间实在窘迫,就还是按照 python 版本划分了两个子环境,用到现在也觉得没必要再细分了。另外 Use Conda Package Manager,这个应该对应的是这个 button 上面的那个+号之类的功能吧... 无关紧要了,反正也是命令行安装。 |
4
capbone OP @SeaRecluse @clavichord93 @Rubbly 呃... 你们都是用命令行来装包吗?我是直接在 PyCharm 里面用那个 GUI 来搜索然后安装,这样是不是有什么问题?
@Rubbly 所有项目都共享一个环境的话,时间长了会导致堆积了很多不必要的包吧,而且版本间可能也会有些冲突。关键是我使用的其中一台机器配置不高,每次打开 PyCharm 非常慢,indexing 的时间非常长,我担心共用一个环境的话可能会拖慢 PyCharm 更多... |
5
SeaRecluse 2019-01-23 09:09:36 +08:00
@capbone sublime text/vscode 欢迎你😂
|