Foi-me fornecido um environment.ubuntu.yml
arquivo para poder criar um ambiente conda. No entanto, executando conda create env --file environment.ubuntu.yml
, recebo a seguinte saída:
conda env create --file environment.ubuntu.yml
Collecting package metadata (repodata.json): done
Solving environment: -
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
Examining fontconfig: 5%|▉ | 10/202 [00:00<00:00, 5393.91it/ ]
Comparing specs that have this dependency: 0%| | 0/12 [00:00<?, ?it/s]
Finding shortest confli| path for fontconfig==2.13.1=he4413a7_1000: 12%|▏| 1/8
Finding shortest conflict path for fontconfig==2.13.1=he4413a7_1000: 25%|▎| 2/8
Finding shortest conflict pa/ for fontconfig[version='>=2.13.0,<3.0a0']: 25%|
Finding shortest conflict path for fontconfig[version='>=2.13.0,<3.0a0']: 38%|
Finding shortest conf- ct path for fontconfig[version='>=2.11.1']: 38%|▍| 3/8 [
Finding shortest conflict path for fontconfig[version='>=2.11.1']: 50%|▌| 4/8 [
Finding shortest conflict pa| for fontconfig[version='>=2.12.4,<3.0a0']: 50%|
...
O Finding shortest conflict path
prolonga-se por um longo tempo - aparentemente ele está tentando resolver alguns problemas de dependência. Funcionando por 2 horas, não está claro se ele irá parar.
Minha pergunta é: o que está acontecendo aqui e posso, de alguma maneira, acelerar manualmente esse processo, por exemplo, removendo dependências desnecessárias? Como não criei o ambiente, não sei quais são realmente necessárias.
A razão pela qual estou curioso é porque está verificando caminhos de conflito como fontconfig[version='>=2.12.6,<3.0a0']
quando está o que dependencies
está 2.13.1
e eu o instalei através2.13.1
Encontre abaixo o arquivo .yml para referência.
name: cea
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- dlr-sc
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- conda-forge
- conda-forge/label/gcc7
- defaults
dependencies:
- attrs=19.1.0=py_0
- backports=1.0=py_2
- backports.functools_lru_cache=1.5=py_1
- backports_abc=0.5=py_1
- boost-cpp=1.68.0=h11c811c_1000
- bzip2=1.0.6=h14c3975_1002
- ca-certificates=2019.3.9=hecc5488_0
- cairo=1.14.12=h80bd089_1005
- certifi=2019.3.9=py27_0
- click=7.0=py_0
- click-plugins=1.0.4=py_0
- cligj=0.5.0=py_0
- curl=7.64.1=hf8cf82a_0
- cycler=0.10.0=py_1
- descartes=1.1.0=py_2
- enum34=1.1.6=py27_1001
- expat=2.2.5=hf484d3e_1002
- fiona=1.8.6=py27hf242f0b_2
- fontconfig=2.13.1=he4413a7_1000
- freetype=2.10.0=he983fc9_0
- freexl=1.0.5=h14c3975_1002
- functools32=3.2.3.2=py_3
- futures=3.2.0=py27_1000
- gdal=2.4.1=py27h5f563d9_8
- geopandas=0.4.1=py_1
- geos=3.7.1=hf484d3e_1000
- geotiff=1.4.3=h1105359_1000
- gettext=0.19.8.1=hc5be6a0_1002
- giflib=5.1.7=h516909a_1
- glib=2.56.2=had28632_1001
- hdf4=4.2.13=h9a582f1_1002
- hdf5=1.10.4=nompi_h3c11f04_1106
- icu=58.2=hf484d3e_1000
- jpeg=9c=h14c3975_1001
- json-c=0.13.1=h14c3975_1001
- kealib=1.4.10=h1978553_1003
- kiwisolver=1.0.1=py27h6bb024c_1002
- krb5=1.16.3=h05b26f9_1001
- libblas=3.8.0=4_openblas
- libcblas=3.8.0=4_openblas
- libcurl=7.64.1=hda55be3_0
- libdap4=3.19.1=hd48c02d_1000
- libedit=3.1.20170329=hf8c457e_1001
- libffi=3.2.1=he1b5a44_1006
- libgdal=2.4.1=heae24aa_8
- libiconv=1.15=h516909a_1005
- libkml=1.3.0=h328b03d_1009
- liblapack=3.8.0=4_openblas
- libnetcdf=4.6.2=hbdf4f91_1001
- libpng=1.6.36=h84994c4_1000
- libpq=11.2=h4770945_0
- libspatialindex=1.9.0=he1b5a44_0
- libspatialite=4.3.0a=hb5ec416_1026
- libssh2=1.8.2=h22169c7_2
- libtiff=4.0.10=h648cc4a_1001
- libuuid=2.32.1=h14c3975_1000
- libxcb=1.13=h14c3975_1002
- libxml2=2.9.8=h143f9aa_1005
- mapclassify=1.0.1=py27_1
- matplotlib=2.2.3=py27h8a2030e_1
- matplotlib-base=2.2.3=py27h60b886d_1
- munch=2.3.2=py_0
- ncurses=6.1=hf484d3e_1002
- numpy=1.16.2=py27h8b7e671_1
- openblas=0.3.5=h9ac9557_1001
- openjpeg=2.3.0=hf38bd82_1003
- openssl=1.1.1b=h14c3975_1
- pandas=0.24.2=py27hf484d3e_0
- pip=19.0.3=py27_0
- pixman=0.34.0=h14c3975_1003
- poppler=0.67.0=h2fc8fa2_1002
- poppler-data=0.4.9=1
- postgresql=11.2=h61314c7_0
- proj4=5.2.0=h14c3975_1001
- pthread-stubs=0.4=h14c3975_1001
- pyparsing=2.3.1=py_0
- pyproj=1.9.6=py27hc0953d3_1000
- pyqt=5.6.0=py27h13b7fb3_1008
- python=2.7.15=h721da81_1008
- python-dateutil=2.8.0=py_0
- pytz=2018.9=py_0
- readline=7.0=hf8c457e_1001
- rtree=0.8.3=py27h666c49c_1002
- scipy=1.2.1=py27h09a28d5_1
- setuptools=40.8.0=py27_0
- shapely=1.6.4=py27h2afed24_1003
- singledispatch=3.4.0.3=py27_1000
- sip=4.18.1=py27hf484d3e_1000
- six=1.12.0=py27_1000
- sqlite=3.26.0=h67949de_1001
- subprocess32=3.5.3=py27h14c3975_0
- tbb=2019.5=hc9558a2_0
- tk=8.6.9=h84994c4_1001
- tornado=5.1.1=py27h14c3975_1000
- tzcode=2018g=h14c3975_1001
- wheel=0.33.1=py27_0
- xerces-c=3.2.2=hac72e42_1001
- xorg-kbproto=1.0.7=h14c3975_1002
- xorg-libice=1.0.9=h516909a_1004
- xorg-libsm=1.2.3=h84519dc_1000
- xorg-libx11=1.6.7=h14c3975_1000
- xorg-libxau=1.0.9=h14c3975_0
- xorg-libxdmcp=1.1.3=h516909a_0
- xorg-libxext=1.3.4=h516909a_0
- xorg-libxrender=0.9.10=h516909a_1002
- xorg-renderproto=0.11.1=h14c3975_1002
- xorg-xextproto=7.3.0=h14c3975_1002
- xorg-xproto=7.0.31=h14c3975_1007
- xz=5.2.4=h14c3975_1001
- zlib=1.2.11=h14c3975_1004
- freeimageplus=3.18.0=hf484d3e_2
- gl2ps=1.3.8=h14c3975_4
- oce=0.17.2=h6bb024c_10
- pythonocc-core=0.17=py27_1
- mkl=2017.0.3=0
- mkl-service=1.1.2=py27_3
- dbus=1.13.2=h714fa37_1
- gst-plugins-base=1.14.0=hbbd80ab_1
- gstreamer=1.14.0=hb453b48_1
- libgcc-ng=8.2.0=hdf63c60_1
- libgfortran-ng=7.3.0=hdf63c60_0
- libstdcxx-ng=8.2.0=hdf63c60_1
- pcre=8.43=he6710b0_0
- qt=5.6.3=h8bf5577_3
- pip:
- alabaster==0.7.12
- babel==2.6.0
- backports.shutil-get-terminal-size==1.0.0
- bleach==3.1.0
- chardet==3.0.4
- cloudpickle==0.8.1
- configparser==3.7.4
- cvxopt==1.2.3
- decorator==4.4.0
- defusedxml==0.5.0
- docutils==0.14
- doit==0.29.0
- entrypoints==0.3
- ephem==3.7.6.0
- funcsigs==1.0.2
- h5py==2.9.0
- idna==2.8
- imagesize==1.1.0
- importlib-resources==1.0.2
- ipaddress==1.0.22
- ipykernel==4.10.0
- ipython==5.8.0
- ipython-genutils==0.2.0
- ipywidgets==7.4.2
- jinja2==2.10
- joblib==0.12.5
- jsonschema==3.0.1
- jupyter==1.0.0
- jupyter-client==5.2.4
- jupyter-console==5.2.0
- jupyter-core==4.4.0
- llvmlite==0.28.0
- lxml==4.3.3
- markupsafe==1.1.1
- mistune==0.8.4
- mock==2.0.0
- nbconvert==5.4.1
- nbformat==4.4.0
- networkx==2.2
- notebook==5.7.8
- numba==0.43.1
- packaging==19.0
- pandocfilters==1.4.2
- pathlib2==2.3.3
- patsy==0.5.1
- pbr==5.1.3
- pexpect==4.6.0
- pickleshare==0.7.5
- pkginfo==1.5.0.1
- plotly==3.7.1
- prometheus-client==0.6.0
- prompt-toolkit==1.0.15
- ptyprocess==0.6.0
- py4design==0.27
- pycollada==0.6
- pygments==2.3.1
- pyinotify==0.9.6
- pymc3==3.6
- pymf==0.1.9
- pyrsistent==0.14.11
- pysal==1.14.4.post2
- pyshp==2.1.0
- pyyaml==5.1
- pyzmq==18.0.1
- qtconsole==4.4.3
- readme-renderer==24.0
- requests==2.21.0
- requests-toolbelt==0.9.1
- retrying==1.3.3
- salib==1.2
- scandir==1.10.0
- scikit-learn==0.20.3
- seaborn==0.9.0
- send2trash==1.5.0
- simplegeneric==0.8.1
- snowballstemmer==1.2.1
- sphinx==1.8.5
- sphinxcontrib-websupport==1.1.0
- terminado==0.8.2
- testpath==0.4.2
- theano==1.0.4
- timezonefinder==4.0.1
- tqdm==4.31.1
- traitlets==4.3.2
- twine==1.13.0
- typing==3.6.6
- urllib3==1.24.1
- utm==0.4.2
- wcwidth==0.1.7
- webencodings==0.5.1
- widgetsnbextension==3.4.2
- xlrd==1.2.0
- xlwt==1.3.0
- deap==1.3.0
fonte
pip
seção, mas isso é apenas uma boa prática e não muito para o seu objetivo de criar o ambiente.version='>=2.12.6,<3.0a0'
quando está o quedependencies
está2.13.1
e eu o instaleiconda install fontconfig=2.13.1
.fontconfig=2.13.1
como apenas mais uma restrição, juntamente com as que vêm de todos os pacotes que têm isso como uma dependência (por exemplo,fontconfig[version='>=2.12.6,<3.0a0']
) e depois tenta encontrar o cruzamento. Talvez ele simplesmente não perceba que, como todas as suas especificações são explícitas até a compilação, na verdade não há espaço de manobra.Respostas:
É provável que esse erro e o comportamento subsequente sejam causados pelo bug do Anaconda que, de tempos em tempos, causa inconsistências no ambiente local. Em 26 de janeiro de 2020, o bug ainda não estava resolvido.
Para mim, o mesmo problema se manifesta profundamente no Mac.
fonte
Em geral, a resposta a esta pergunta é que você deve criar seu .yml manualmente, com apenas os canais e restrições necessários. Você deve relaxar as restrições de versão para que elas pareçam apenas 1,19 em vez de 1,19.10
No entanto, apesar de seguir este conselho, tenho quase exatamente o seu problema no momento. Ele passou muitas horas no fontconfig e eu o deixei durante a noite antes de desistir. Minha especificação é bem simples:
Vou editar isso quando descobrir.
EDIT: este problema está em discussão aqui (específico para o software que eu estava tentando configurar, provavelmente não é útil para outros) https://github.com/USGS-Astrogeology/ISIS3/issues/3570
fonte
No meu caso, eu tinha substituído algumas das versões de compilação (a
...=he4413a7_1000
parte) como os do arquivo original tinha sido foram colocados novos rótulos comobroken
onconda-forge
. No entanto, mesmo que o número da versão não tenha sido alterado para essas dependências, suas subdependências foram alteradas, causando todos esses conflitos. A linha inferior é: não mexa com dependências manualmente.Resolvi o problema mantendo as especificações da versão de compilação original e adicionando
conda-forge/labels/broken
àchannels
parte do.yml
arquivo.fonte
Também tive o mesmo problema no Windows 10, usando o pycharm com a versão mais recente do anaconda (python 3.7) a partir de 17 de fevereiro de 2020. Estranhamente, alternar o "use conda package manager" na página do interpretador de projeto nas configurações do pycharm me permitiu atualizar numpy e instalar pacotes normalmente. Tente instalar um pacote sem o gerenciador de pacotes conda e com o gerenciador de pacotes conda. Boa sorte!
fonte
Eu conheci esse problema e o resolvi. Primeiramente, fiz minha versão anaconda ser consistente com a origem do arquivo yaml. Isso pode ser inútil, mas considero que a versão condda consistente pode prometer um ambiente base consistente. Em segundo lugar, apaguei todas as dependências, mas alguns pacotes 'principais' que eu realmente quero usar no meu arquivo yaml. Isso significa deixar esses pacotes 'principais' lidar com problemas de dependência.
fonte
Para mim, adicionar o seguinte ao arquivo yaml funcionou:
fonte
Para mim, trabalhou melhor para fazer:
which python
(confirmando que estava na lixeira anaconda3)Observe qual versão corresponde à versão (aqui 3.7.3) em uso para o Anaconda (como estou criando um novo ambiente, é lógico que eu poderia usar a mesma versão do Python que o próprio Anaconda está usando). Observe que minha listagem dos canais conda (pesquisa conda acima) mostrou apenas uma linha 3.7.3.
Então faça o seguinte:
Demorou cerca de 1 minuto para executar o último comando :)
fonte