【发布时间】:2020-10-13 22:13:01
【问题描述】:
我是 Anaconda 的新手,我有一个需要 numpy matplotlib 和 pandas 的项目。所以我卸载了所有以前版本的python,安装了anaconda,并为我的项目创建了一个新的虚拟环境(并激活了它)。在那里我运行了以下命令:
conda install numpy -y
conda install matplotlib -y
conda install pandas -y
当我运行conda list 时,我能够找到所有这些。问题是它们还附带了大量其他依赖项。
这是我的 environment.yaml 文件中的依赖项的外观:
dependencies:
- blas=1.0=mkl
- ca-certificates=2020.7.22=0
- certifi=2020.6.20=py37_0
- cycler=0.10.0=py37_0
- freetype=2.10.3=hd328e21_0
- icu=58.2=ha925a31_3
- intel-openmp=2020.2=254
- jpeg=9b=hb83a4c4_2
- kiwisolver=1.2.0=py37h74a9793_0
- libpng=1.6.37=h2a8f88b_0
- libtiff=4.1.0=h56a325e_1
- lz4-c=1.9.2=hf4a77e7_3
- matplotlib=3.3.1=0
- matplotlib-base=3.3.1=py37hba9282a_0
- mkl=2020.2=256
- mkl-service=2.3.0=py37hb782905_0
- mkl_fft=1.2.0=py37h45dec08_0
- mkl_random=1.1.1=py37h47e9c7a_0
- numpy=1.19.1=py37h5510c5b_0
- numpy-base=1.19.1=py37ha3acd2a_0
- olefile=0.46=py37_0
- openssl=1.1.1h=he774522_0
- pandas=1.1.3=py37ha925a31_0
- pillow=7.2.0=py37hcc1f983_0
- pip=20.2.3=py37_0
- pyparsing=2.4.7=py_0
- pyqt=5.9.2=py37h6538335_2
- python=3.7.9=h60c2a47_0
- python-dateutil=2.8.1=py_0
- pytz=2020.1=py_0
- qt=5.9.7=vc14h73c81de_0
- setuptools=50.3.0=py37h9490d1a_1
- sip=4.19.8=py37h6538335_0
- six=1.15.0=py_0
- sqlite=3.33.0=h2a8f88b_0
- tk=8.6.10=he774522_0
- tornado=6.0.4=py37he774522_1
- vc=14.1=h0510ff6_4
- vs2015_runtime=14.16.27012=hf0eaf9b_3
- wheel=0.35.1=py_0
- wincertstore=0.2=py37_0
- xz=5.2.5=h62dcd97_0
- zlib=1.2.11=h62dcd97_4
- zstd=1.4.5=h04227a9_0
所有这些都是必要的吗?当我查看其他人的 environment.yaml 文件时,他们总是看起来很干净,尽管仍然有 numpy、matplotlib 和 pandas,但并没有所有这些包。
【问题讨论】:
-
这很正常。
numpy、matplotlib和pandas具有巨大的依赖链。如果您正在查看其他人的文件并且他们没有这些文件,那么这些人可能不会固定传递依赖项,而是让 conda 在安装时决定使用哪些版本。这样做有正当理由,但也有正当理由不这样做。 -
唯一对我来说不需要的是龙卷风...... blas、intel-openmp 和 mkl 在 numpy 中是“可选的”,但它们让它运行得更快
-
@CharlesDuffy 和 OneCricketeer,感谢您的说明!
-
有点相关,如果你想导出一个最小的
environment.yaml文件:stackoverflow.com/a/64288844/570918
标签: python anaconda yaml virtualenv