สร้างสภาพแวดล้อม conda:“ พบข้อขัดแย้ง!” เมื่อแก้ปัญหาสิ่งแวดล้อมและ“ การค้นหาเส้นทางความขัดแย้งที่สั้นที่สุด” ทำงานตลอดไป


12

ฉันได้รับenvironment.ubuntu.ymlไฟล์เพื่อให้สามารถสร้างสภาพแวดล้อมแบบ conda อย่างไรก็ตามการรันconda create env --file environment.ubuntu.ymlฉันจะได้ผลลัพธ์ต่อไปนี้:

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

Finding shortest conflict pathไปบนเป็นเวลานาน - เห็นได้ชัดว่ามันพยายามที่จะแก้ไขปัญหาการพึ่งพาบาง ทำงานเป็นเวลา 2 ชั่วโมงไม่ชัดเจนว่าจะหยุดทำงานหรือไม่

คำถามของฉันคือ: เกิดอะไรขึ้นที่นี่และฉันสามารถเร่งกระบวนการนี้ด้วยตนเองได้ไหมเช่นด้วยการลบการพึ่งพาที่ไม่จำเป็นออก ตั้งแต่ฉันไม่ได้สร้างสภาพแวดล้อมฉันไม่ทราบว่าสิ่งที่จำเป็นจริง ๆ

เหตุผลที่ฉันอยากรู้เป็นเพราะมันคือการตรวจสอบเส้นทางความขัดแย้งเช่นfontconfig[version='>=2.12.6,<3.0a0']เมื่อหนึ่งในdependenciesเป็น2.13.1และผมได้ติดตั้งมันผ่าน2.13.1

โปรดค้นหาไฟล์ .yml ด้านล่างสำหรับการอ้างอิง

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
ใช่มันเป็นระเบียบ จุดเริ่มต้น ... เป็นไปได้สูงว่าเรื่องนี้ไม่จำเป็นมาก (คุณไม่จำเป็นต้องใช้ช่องกระจกจีนหากคุณไม่ได้อยู่ในประเทศจีน) ฉันหมดหวังกับเราที่จะช่วยคุณจัดการเรื่องนี้โดยตรง โอกาสที่ดีที่สุดของคุณคือถ้าคุณมีฐานรหัสบางอย่างที่คุณพยายามเรียกใช้ GREP ที่ใช้สำหรับการนำเข้างบแล้วเก็บเฉพาะสิ่งที่ได้รับการนำเข้า และถ้าบางสิ่งมีแพ็คเกจที่เทียบเท่าใน Conda มันควรจะถูกย้ายออกจากpipส่วนจริงๆแต่นั่นเป็นเพียงแนวปฏิบัติที่ดีและไม่ได้เคลื่อนไปสู่เป้าหมายของคุณในการสร้าง env
merv

@ เมิร์ฟฉันกังวลว่านี่คือคำตอบ ฉันแค่อยากรู้ว่าทำไมมันถึงตรวจสอบเส้นทางความขัดแย้งเช่นversion='>=2.12.6,<3.0a0'เมื่ออยู่ในdependenciesนั้น2.13.1และฉันได้ทำการติดตั้งconda install fontconfig=2.13.1แล้ว
Toivo Säwén

ฉันไม่แน่ใจทั้งหมด ถ้าฉันต้องเดาดูเหมือนว่าเมื่อ Conda เข้าสู่โหมดการแก้ไขข้อขัดแย้งจะถือว่าข้อมูลจำเพาะชัดเจนfontconfig=2.13.1เป็นข้อ จำกัด อื่นพร้อมกับสิ่งที่มาจากแพ็คเกจทั้งหมดที่มีการพึ่งพา (เช่นfontconfig[version='>=2.12.6,<3.0a0']) แล้วพยายามค้นหา ทางแยก บางทีมันอาจไม่ได้ตระหนักว่าเพราะรายละเอียดทั้งหมดของคุณชัดเจนลงไปที่การสร้างมีจริงไม่มีห้องเลื้อย
merv

คำตอบ:


7

ข้อผิดพลาดนี้และพฤติกรรมที่ตามมาน่าจะมาจากข้อผิดพลาดของงูใหญ่ซึ่งบางครั้งทำให้เกิดความไม่สอดคล้องกันในสภาพแวดล้อมท้องถิ่น ตั้งแต่วันที่ 26 มกราคม 2020 ข้อผิดพลาดยังไม่ได้รับการแก้ไข

สำหรับฉันปัญหาเดียวกันปรากฏชัดบน Mac


3

โดยทั่วไปแล้วคำตอบสำหรับคำถามนี้คือคุณควรสร้าง .yml ของคุณเองโดยเริ่มต้นด้วยช่องและข้อ จำกัด ที่จำเป็นเท่านั้น คุณควรผ่อนคลายข้อ จำกัด เวอร์ชันเพื่อให้ดูเหมือนเป็น 1.19 แทนที่จะเป็น 1.19.10

อย่างไรก็ตามแม้จะทำตามคำแนะนำนี้ฉันมีปัญหาของคุณเกือบจะในตอนนี้ ใช้เวลาหลายชั่วโมงกับ fontconfig และฉันทิ้งไว้ข้ามคืนก่อนจะยอมแพ้ สเป็คของฉันค่อนข้างเรียบง่าย:

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

ฉันจะแก้ไขสิ่งนี้เมื่อฉันเข้าใจ

แก้ไข: ปัญหานี้อยู่ภายใต้การสนทนาที่นี่ (เฉพาะซอฟต์แวร์ที่ฉันพยายามติดตั้งอาจไม่เป็นประโยชน์สำหรับผู้อื่น) https://github.com/USGS-Astrogeology/ISIS3/issues/3570


1

ในกรณีที่ผมได้เข้ามาแทนที่บางส่วนของการสร้างรุ่น (คน...=he4413a7_1000ส่วน) เป็นคนในไฟล์ต้นฉบับที่ได้รับการ relabelled เป็นบนbroken conda-forgeอย่างไรก็ตามแม้ว่าหมายเลขเวอร์ชันจะไม่เปลี่ยนแปลงสำหรับการอ้างอิงเหล่านี้ แต่การอ้างอิงย่อยของพวกเขาเปลี่ยนไปทำให้เกิดความขัดแย้งเหล่านี้ทั้งหมด บรรทัดล่างคือ: อย่ายุ่งกับการพึ่งพาตนเอง

ฉันแก้ไขปัญหาด้วยการเก็บข้อมูลจำเพาะเวอร์ชั่นของบิลด์ดั้งเดิมและเพิ่มconda-forge/labels/brokenลงในchannelsส่วนของ.ymlไฟล์


0

ฉันก็ประสบกับปัญหาเดียวกันใน windows 10 โดยใช้ pycharm กับ anaconda (python 3.7) งานสร้างล่าสุดเมื่อวันที่ 17,2020 การสลับ "การใช้งานตัวจัดการแพคเกจ conda" บนหน้าล่ามโครงการในการตั้งค่าของ pycharm นั้นทำให้ฉันสามารถอัปเดตจำนวนมากและติดตั้งแพ็กเกจได้ตามปกติ ลองติดตั้งแพคเกจโดยไม่มีตัวจัดการแพคเกจ conda และกับตัวจัดการแพคเกจ conda โชคดี!


-1

ฉันพบปัญหานี้แล้วและแก้ไขได้ ประการแรกฉันทำให้รุ่นแอนคอนดาของฉันสอดคล้องกับตำแหน่งที่ไฟล์ yaml ส่งออก นี่อาจจะไร้ประโยชน์ แต่ฉันคิดว่าเวอร์ชั่น conda ที่สอดคล้องกันสามารถรับประกันสภาพแวดล้อมพื้นฐานที่สอดคล้องกันได้ ประการที่สองฉันลบการอ้างอิงทั้งหมด แต่บางแพ็คเกจ 'หลัก' ซึ่งฉันต้องการใช้จริงในไฟล์ yaml ของฉันนั่นหมายถึงให้แพ็คเกจ 'หลัก' เหล่านี้จัดการปัญหาการพึ่งพา


-1

สำหรับฉันเพิ่มต่อไปนี้ไปยังไฟล์ yaml ทำงาน:

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

ฉันเขียนไปแล้วในคำตอบอื่น?
Toivo Säwén

ฉันขอโทษคุณพูดถูก
Frank Tap

-2

สำหรับฉันทำงานได้ดีที่สุดที่จะทำ:

which python (ยืนยันว่าอยู่ในถังอนาคอนดา 3)

python --version
conda search "^python$"

โปรดทราบว่าเวอร์ชันใดตรงกับรุ่น (ที่นี่ 3.7.3) ที่ใช้สำหรับอนาคอนด้า (เนื่องจากฉันกำลังสร้างสภาพแวดล้อมใหม่มันจึงเป็นเหตุผลว่าฉันสามารถใช้ Python เวอร์ชันเดียวกันกับที่แอนาคอนดาใช้) โปรดทราบว่ารายชื่อของฉันจากแชแนล conda (การค้นหา conda ด้านบน) แสดงเพียง 3.7.3 บรรทัด

จากนั้นทำสิ่งนี้:

conda create -n myenv python=3.7.3 anaconda

ใช้เวลาประมาณ 1 นาทีในการรันคำสั่งสุดท้าย :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.