Tạo môi trường conda: Xung đột tìm thấy! Khi giải quyết môi trường và Tìm kiếm xung đột ngắn nhất Đường chạy mãi mãi


12

Tôi đã được cung cấp một environment.ubuntu.ymltập tin để có thể tạo ra một môi trường conda. Tuy nhiên, chạy conda create env --file environment.ubuntu.ymltôi nhận được đầu ra sau:

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%|
...

Việc này Finding shortest conflict pathdiễn ra trong một thời gian dài - rõ ràng nó đang cố gắng giải quyết một số vấn đề phụ thuộc. Chạy trong 2 giờ không rõ liệu nó có dừng lại không.

Câu hỏi của tôi là: những gì đang xảy ra ở đây và bằng cách nào đó tôi có thể tăng tốc quá trình này một cách thủ công, ví dụ bằng cách loại bỏ các phụ thuộc không cần thiết? Vì tôi không tạo ra môi trường nên tôi không biết cái nào thực sự cần thiết.

Lý do tại sao tôi tò mò là bởi vì nó đang kiểm tra đường dẫn xung đột như fontconfig[version='>=2.12.6,<3.0a0']khi một trong dependencies2.13.1và tôi đã cài đặt nó thông qua2.13.1

Vui lòng tìm bên dưới tệp .yml để tham khảo.

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

2
Vâng, đó là một mớ hỗn độn. Bắt đầu từ đâu ... Rất có khả năng phần lớn điều này là không cần thiết (bạn chắc chắn không cần các kênh nhân bản Trung Quốc đó nếu bạn không ở Trung Quốc). Tôi tuyệt vọng của chúng tôi giúp bạn sắp xếp điều này trực tiếp. Cơ hội tốt nhất của bạn là nếu bạn thực sự có một số cơ sở mã mà bạn đang cố gắng chạy. GREP cho các báo cáo nhập khẩu, sau đó chỉ giữ lại những gì được nhập khẩu. Và nếu một cái gì đó có một gói tương đương trong Conda, thì nó thực sự nên được chuyển từ pipphần này, nhưng đó chỉ là cách thực hành tốt và không quá chuyển đến mục tiêu của bạn là tạo ra env.
merv

@merv Mình lo lắng đây là câu trả lời. Tôi chỉ tò mò tại sao nó đang kiểm tra đường dẫn xung đột như version='>=2.12.6,<3.0a0'khi một trong dependencies2.13.1và tôi đã cài đặt nó thông qua conda install fontconfig=2.13.1.
Toivo Säwén

Tôi không hoàn toàn chắc chắn. Nếu tôi phải đoán, có vẻ như khi Conda chuyển sang chế độ giải quyết xung đột, nó coi thông số rõ ràng fontconfig=2.13.1là một ràng buộc khác, cùng với các gói đến từ tất cả các gói có phụ thuộc (ví dụ fontconfig[version='>=2.12.6,<3.0a0']:) và sau đó cố gắng tìm ngã tư. Có lẽ nó chỉ không nhận ra rằng vì tất cả các thông số kỹ thuật của bạn rõ ràng cho đến bản dựng, thực sự không có phòng ngọ nguậy.
thần kinh

Câu trả lời:


7

Lỗi này và hành vi tiếp theo rất có thể đến từ lỗi Anaconda , đôi khi gây ra sự không nhất quán trong môi trường địa phương. Kể từ ngày 26 tháng 1 năm 2020, lỗi vẫn chưa được khắc phục.

Đối với tôi, cùng một vấn đề biểu hiện sâu sắc trên Mac.


3

Nói chung, câu trả lời cho câu hỏi này là bạn nên tạo .yml của mình từ đầu, chỉ với các kênh và ràng buộc cần thiết. Bạn nên thư giãn các ràng buộc phiên bản để chúng chỉ trông giống như 1.19 thay vì 1.19.10

Tuy nhiên, mặc dù làm theo lời khuyên này, tôi có gần như chính xác vấn đề của bạn ngay bây giờ. Nó đã dành nhiều giờ cho fontconfig và tôi đã để nó qua đêm trước khi từ bỏ. Thông số kỹ thuật của tôi khá đơn giản:

channels:
  - conda-forge
  - usgs-astrogeology
  - defaults
dependencies:
  - python=3.6
  - isis3
  - gdal=2.3

Tôi sẽ chỉnh sửa nó khi tôi tìm ra nó.

EDIT: Vấn đề này đang được thảo luận ở đây (cụ thể đối với phần mềm tôi đã cố gắng thiết lập, có thể không hữu ích cho người khác) https://github.com/USGS-Astrogeology/ISIS3/issues35370


1

Trong trường hợp của tôi, tôi đã thay thế một số phiên bản xây dựng ( ...=he4413a7_1000phần) vì các phiên bản trong tệp gốc đã được định dạng lại như brokentrênconda-forge . Tuy nhiên, mặc dù số phiên bản không thay đổi đối với các phụ thuộc này, các phụ thuộc của chúng đã thay đổi, gây ra tất cả các xung đột. Điểm mấu chốt là: không gây rối với các phụ thuộc theo cách thủ công.

Tôi đã giải quyết vấn đề bằng cách giữ nguyên các thông số kỹ thuật của phiên bản xây dựng ban đầu và thêm conda-forge/labels/brokenvào channelsphần của .ymltệp.


0

Tôi cũng đã phải đối mặt với vấn đề tương tự trên windows 10, sử dụng pycharm với anaconda (python 3.7) bản dựng mới nhất kể từ feb 17,2020. Thật kỳ lạ khi bật "trình quản lý gói conda" trên trang thông dịch dự án trong cài đặt của pycharm cho phép tôi cập nhật numpy và cài đặt các gói bình thường. Hãy thử cài đặt một gói mà không có trình quản lý gói conda và với trình quản lý gói conda. Chúc may mắn!


-1

Tôi đã gặp vấn đề này và giải quyết nó. Đầu tiên, tôi làm cho phiên bản anaconda của mình phù hợp với nơi xuất tệp yaml. Điều này có thể là vô ích nhưng tôi cho rằng phiên bản conda nhất quán có thể hứa hẹn môi trường cơ sở nhất quán. Thứ hai, tôi đã xóa tất cả các phụ thuộc nhưng một số gói 'chính' mà tôi thực sự muốn sử dụng trong tệp yaml của mình. Điều đó có nghĩa là hãy để các gói 'chính' này xử lý các vấn đề phụ thuộc.


-1

Đối với tôi, việc thêm các mục sau vào tệp yaml đã hoạt động:

channels:
  - conda-forge
  - defaults
  - conda-forge/label/broken

Tôi đã viết điều này trong một câu trả lời khác?
Toivo Säwén

Tôi xin lỗi, bạn đã đúng
Frank Tap

-2

Đối với tôi làm việc tốt nhất để làm:

which python (xác nhận rằng nó đã ở trong thùng anaconda3)

python --version
conda search "^python$"

Lưu ý phiên bản nào phù hợp với phiên bản (ở đây 3.7.3) được sử dụng cho Anaconda (vì tôi đang tạo môi trường mới, lý do là tôi có thể sử dụng cùng một phiên bản Python mà chính Anaconda đang sử dụng). Lưu ý rằng danh sách của tôi từ các kênh conda (tìm kiếm conda ở trên) chỉ hiển thị một dòng 3.7.3.

Sau đó, làm điều này:

conda create -n myenv python=3.7.3 anaconda

Mất khoảng 1 phút để chạy lệnh cuối cùng :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.