显然,conda无法找到一些非常常见的软件包:我在做什么错了?

时间:2019-03-05 13:23:08

标签: python package install conda

环境:我在具有高Sierra的Mac上使用conda 4.6.7。

我有一些旧的Python代码,首先我想运行它。当然,由于这是研究代码,所以我没想到会找到诸如测试套件之类的“花哨的东西(!!)”,但是我希望至少可以提供一个requirements.txt文件。白日梦。在对组成项目的各个文件中的import列表进行GREP删除后,我想到了要安装的以下软件包列表:

conda install os sys math time scipy numpy zipfile urllib.request shutil PIL skimage config itertools logging json re random collections matplotlib visualize glob random datetime tensorflow keras colorsys IPython

我把所有这些都放在一个对conda的调用中,因为根据

https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-with-commands

您应该

  

在此环境中安装所需的所有程序。   同时。一次安装1个程序可能会导致依赖性   冲突。

(顺便说一句,有没有办法在命令中包含换行符,还是必须那么长?)

但是,conda给了我错误:

PackagesNotFoundError: The following packages are not available from current channels:

  - config
  - math
  - visualize
  - datetime
  - urllib.request
  - re
  - logging
  - json
  - os
  - glob
  - collections
  - sys
  - colorsys
  - itertools
  - random
  - zipfile
  - time
  - shutil
  - skimage

在我看来这很奇怪,因为至少其中一些非常普遍。这些是我的conda环境中的软件包:

# Name                    Version                   Build  Channel
ca-certificates           2019.1.23                     0
certifi                   2018.11.29               py36_0
libcxx                    4.0.1                hcfea43d_1
libcxxabi                 4.0.1                hcfea43d_1
libedit                   3.1.20181209         hb402a30_0
libffi                    3.2.1                h475c297_4
ncurses                   6.1                  h0a44026_1
openssl                   1.1.1b               h1de35cc_0
pip                       19.0.3                   py36_0
python                    3.6.8                haf84260_0
readline                  7.0                  h1de35cc_5
setuptools                40.8.0                   py36_0
sqlite                    3.26.0               ha441bb4_0
tk                        8.6.8                ha441bb4_0
wheel                     0.33.1                   py36_0
xz                        5.2.4                h1de35cc_4
zlib                      1.2.11               h1de35cc_3

我该如何解决以上问题?

2 个答案:

答案 0 :(得分:3)

这些软件包中的大多数(例如mathrandomitertools ....)都是python standard library的一部分,因此,该软件包的任何标准安装都应该可用python(即使它们未显示在conda list的输出中)。因此,Conda不会单独安装这些组件,也不会在软件包列表中包含它们。

您尝试的其他问题与软件包名称有关。例如,您尝试安装scikit-image,但使用缩写形式skimage在安装后用于导入, eg import skimage)。如果您使用conda install scikit-image,conda会找到它。

答案 1 :(得分:0)

尝试通过Shell脚本执行此操作。转到您的requirements.txt所在的文件夹,然后

while read requirement; do conda install --yes $requirement; done < requirements.txt

否则,您不必一定要使用conda-只需进入环境

conda activate <environmentname>
pip install -r requirements.txt

用于标准包和其他一些包

conda install anaconda