Setup-miniconda: تستغرق خطوة كوندا الإعداد وقتًا طويلاً

تم إنشاؤها على ١٠ نوفمبر ٢٠٢٠  ·  16تعليقات  ·  مصدر: conda-incubator/setup-miniconda

شكرًا لك على إنشاء / الحفاظ على هذا العمل الرائع!

يبدو أن إعداد conda وحده يستغرق وقتًا أطول من المعتاد. على سبيل المثال ، ألق نظرة على هذا السجل ، خطوة "إعداد كوندا". يستغرق إعداد Conda 3 دقائق ونصف (باستثناء تثبيت التبعيات). هل هذا متوقع أم أفعل شيئًا خاطئًا؟

شكرا لك مرة أخرى!

enhancement

التعليق الأكثر فائدة

هناك الكثير من القطع المتحركة التي تظهر الآن أكثر من مجرد _استخدام ما هو موجود على القرص_ مقابل _ احصل على مُثبِّت من عنوان URL بمخطط تمكنا من توقعه لمدة نصف عقد_ ، وسلوك الكود الحالي w / r / t إلى mamba يصعب التفكير فيه.

سأراهن ، إذا قدمت mamba-version ، فسيظل _لا يزال _ سيحاول تثبيت mamba من conda-forge ، حتى لو كان موجودًا بالفعل ، و _لا يزال_ استخدم conda لكل شيء _ باستثناء_ حل البيئة (على سبيل المثال conda config ). هذه من شأنها أن تهزم معظم المكاسب التي تحققت بالفعل على القرص ، وبعد التثبيت. نظرًا لأن برنامج التثبيت هذا مع mamba لم يكن موجودًا حتى 13 ساعة مضت ، لم تكن هذه مشكلة ... تفكيري هو أننا سنحتاج على الأرجح إلى شيء مثل conda-exe: mamba إذا كنت _ تعرف_ أنه بالفعل مثبتة ، حتى لو كانت _is_ متوفرة ، فقد لا ترغب في استخدامها ، وغدًا قد تكون هناك الأداة التالية ( lambada ، tarantala ) من Next Installer.

على أي حال ، شعرت أن إصلاح بعض هذه المشكلات يتطلب إعادة هيكلة جذرية جدًا ... في # 107 (التي أصبحت # 108 ، # 109 ، ... قيد المراجعة) بذلت قصارى جهدنا لإعدادنا لـ The Next X ، حيث يمكن أن يكون X ملفًا واحدًا / اثنين PR. نأمل أن نصل إلى حيث يمكننا البدء في إضافة ميزات ومعالجة الأداء ، لكنني أخشى أن عدم معالجة الدين الفني الحالي أولاً سيجعل الوضع أسوأ.

ال 16 كومينتر

مرحبا @ ma-sadeghi ، شكرا على الكلمات الرقيقة واستخدام العمل :)

يبدو أن إعداد conda بمفرده يستغرق وقتًا أطول من المعتاد.

هل تغير هذا في أي إصدار أحدث؟ متى لاحظت بدأت في ملاحظة هذا؟

فقط أتساءل حتى نتمكن من تحديد أي مشكلة محتملة.


@ conda-incubator / setup-miniconda-team هل لاحظت أي شيء مشابه كما هو موصوف؟

نفس المشكلة بالنسبة لي باستخدام mamba (بدون تثبيت deps أثناء الإجراء) ومع أحدث إصدار v2.

bollwyvl يمكنني استخدام تصحيح أخطاء هذا اليد

في حال كان ذلك مفيدًا (لا يمكنني مشاركة السجلات):

    steps:
      - name: Checkout the code
        uses: actions/checkout<strong i="6">@v2</strong>

      - name: Cache conda
        uses: actions/cache<strong i="7">@v1</strong>
        env:
          CACHE_NUMBER: 2
        with:
          path: ~/conda_pkgs_dir
          key: conda-${{ runner.os }}-${{ env.CACHE_NUMBER }}-${{ hashFiles('env.yml') }}

      - name: Setup conda
        uses: conda-incubator/setup-miniconda<strong i="8">@v2</strong>
        with:
          mamba-version: "*"
          channels: conda-forge,defaults
          channel-priority: true
          use-only-tar-bz2: true

شكرا hadim على المثال. سيضيف PR للتحقق من التغييرات التي أدخلت الانحدار.

مرحبا @ ma-sadeghi ، شكرا على الكلمات الرقيقة واستخدام العمل :)

يبدو أن إعداد conda بمفرده يستغرق وقتًا أطول من المعتاد.

هل تغير هذا في أي إصدار أحدث؟ متى لاحظت بدأت في ملاحظة هذا؟

فقط أتساءل حتى نتمكن من تحديد أي مشكلة محتملة.

@ conda-incubator / setup-miniconda-team هل لاحظت أي شيء مشابه كما هو موصوف؟

أنا متأكد تقريبًا من أنه كان أسرع كثيرًا في المرة الأولى التي استخدمت فيها هذا الإجراء ، بعيدًا عن أعلى رأسي ، ربما استغرق الأمر دقيقة واحدة أو نحو ذلك لإعداد conda ، والآن الساعة 3:30 دقيقة. مشروعنا عام ، وقد مضى بعض الوقت منذ أن استخدمنا هذا الإجراء ، لذا لا تتردد في التحقق من سجلاتنا في حال كان ذلك يساعد في تصحيح المشكلة: https://github.com/PMEAL/OpenPNM/actions

من السجلات المرتبطة:

Tue, 10 Nov 2020 21:09:23 GMT /usr/share/miniconda/condabin/conda update conda
Tue, 10 Nov 2020 21:09:54 GMT Collecting package metadata (repodata.json): ...working... done
Tue, 10 Nov 2020 21:10:07 GMT Solving environment: ...working... done
Tue, 10 Nov 2020 21:11:56 GMT
Tue, 10 Nov 2020 21:11:56 GMT ## Package Plan ##

لذلك لدينا ، بطريقة غير علمية إلى حد ما:

  • 26 ثانية من الحصول على repodata
  • 135 ثانية من حل المشكلة لتحديث conda

الشيء الوحيد الذي يمكنني التفكير فيه هو إضافة conda-forge ، مما يضع المحول في حالة زيادة مع حزم 10k + إضافية (وجميع إصداراتها).

بعض الخيارات ، من أعلى رأسي:

  • في الريبو الخاص بك ...

    • قم بتعيين auto-update-conda إلى false

    • ستحصل على ما تحصل عليه ، لكنك ستكون بخير

    • إنشاء / التحقق من المواصفات الصريحة مع conda-lock

    • استخدام مثبت مخصص

    • نعم ، قد يستغرق التنزيل وقتًا أطول ، ولكن لن يتم استدعاء أداة الحل

    • يمكنك / يجب تخزين هذا أيضًا مؤقتًا ، ولكن الحصول على واحد من جيثب سيكون أسرع من الذهاب إلى الإنترنت

  • في _ هذا_ الريبو ..

    • إضافة خيار إجراء جديد ، والذي سيتم سحبه فقط من مجموعة محدودة من القنوات ، على سبيل المثال conda-update-channels: defaults

    • إضافة بعض مخرجات السجل ::group::Boring stuff ::endgroup:: بحيث يسهل تتبع دورة حياة المستوى الأعلى للأوامر التي يديرها هذا الإجراء (اضطررت إلى إزالة الغبار عن الباندا الخاصة بي للقيام ببعض مهام التوقيت)

    • لم أحاول بغضب .. ربما ..

    • عرض إعداد micromaba (مرة أخرى ، توفير حل للزوجين) https://github.com/conda-incubator/setup-miniconda/issues/75#issuecomment -698024879

لما يستحقه معظم الوقت الذي يقضيه في تثبيت mamba:

image

التكوين المرتبط:

      - name: Cache conda
        uses: actions/cache<strong i="9">@v2</strong>
        env:
          CACHE_NUMBER: 3
        with:
          path: ~/conda_pkgs_dir
          key: conda-${{ runner.os }}-${{ env.CACHE_NUMBER }}-${{ hashFiles('env.yml') }}

      - name: Setup conda
        uses: conda-incubator/setup-miniconda<strong i="10">@v2</strong>
        with:
          python-version: 3.7
          mamba-version: "*"
          channels: conda-forge,defaults
          channel-priority: true
          use-only-tar-bz2: true
          activate-environment: nova

هل من الممكن استخدام شيء مثل micromamba بدلاً من miniconda أو miniforge؟

بالنظر إلى التفاصيل ، فإن خطوة الحل هي ما تستغرق 99٪ من الوقت.

إذا تمت معالجة هذه المشكلة ، فسيوفر مسار miniforge هذا افتراضيًا: د

أؤكد أن مثبت MambaForge الذي تم إصداره مؤخرًا يجعل CI أسرع:

- name: Setup conda
  uses: conda-incubator/setup-miniconda<strong i="6">@v2</strong>
  with:
    installer-url: https://github.com/conda-forge/miniforge/releases/download/4.9.2-2/Mambaforge-Linux-x86_64.sh
    channel-priority: true
    use-only-tar-bz2: true
    activate-environment: my-env

- name: Anaconda Login
  run: |
    # Bypass the installation of anaconda-client
    TOKEN_DIR="$HOME/.config/binstar"
    TOKEN_PATH="$TOKEN_DIR/https%3A%2F%2Fapi.anaconda.org.token"
    mkdir -p $TOKEN_DIR
    echo -e "${ANACONDA_USER_TOKEN}\c" > $TOKEN_PATH

- name: Install Dependencies
  run: mamba env update -f env.yml

(يتضمن المقتطف أيضًا طريقة لتسجيل الدخول إلى الأناكوندا دون الحاجة إلى تثبيت anaconda-client . قد يكون مفيدًا للبعض هنا.)

كيف تلعب بـ mamba-version ؟ هل هناك حاجة؟ هل تحتاج إلى التحقق مما إذا كان mamba موجود بالفعل؟

سؤال جيد وأنا في الواقع لا أعرف. يقوم المثبت الجديد بشحن mamba بشكل افتراضي وأنا أستخدمه مباشرة بدون mamba-version .

أحتاج إلى تسجيل الدخول أولاً إلى anaconda أولاً (انظر المقتطف) حتى لا أعتمد على setup-conda لتثبيت env الخاص بي.

أعتقد أنه إذا كنت تريد استخدام setup-conda لتثبيت ملف env ، فيجب تعديل setup-conda للتحقق بالفعل من mamba وتجاوز التثبيت إذا كان موجودًا.

ربما يمكن لشخص من @ conda-incubator / setup-miniconda-team أن يؤكد أم لا؟

هناك الكثير من القطع المتحركة التي تظهر الآن أكثر من مجرد _استخدام ما هو موجود على القرص_ مقابل _ احصل على مُثبِّت من عنوان URL بمخطط تمكنا من توقعه لمدة نصف عقد_ ، وسلوك الكود الحالي w / r / t إلى mamba يصعب التفكير فيه.

سأراهن ، إذا قدمت mamba-version ، فسيظل _لا يزال _ سيحاول تثبيت mamba من conda-forge ، حتى لو كان موجودًا بالفعل ، و _لا يزال_ استخدم conda لكل شيء _ باستثناء_ حل البيئة (على سبيل المثال conda config ). هذه من شأنها أن تهزم معظم المكاسب التي تحققت بالفعل على القرص ، وبعد التثبيت. نظرًا لأن برنامج التثبيت هذا مع mamba لم يكن موجودًا حتى 13 ساعة مضت ، لم تكن هذه مشكلة ... تفكيري هو أننا سنحتاج على الأرجح إلى شيء مثل conda-exe: mamba إذا كنت _ تعرف_ أنه بالفعل مثبتة ، حتى لو كانت _is_ متوفرة ، فقد لا ترغب في استخدامها ، وغدًا قد تكون هناك الأداة التالية ( lambada ، tarantala ) من Next Installer.

على أي حال ، شعرت أن إصلاح بعض هذه المشكلات يتطلب إعادة هيكلة جذرية جدًا ... في # 107 (التي أصبحت # 108 ، # 109 ، ... قيد المراجعة) بذلت قصارى جهدنا لإعدادنا لـ The Next X ، حيث يمكن أن يكون X ملفًا واحدًا / اثنين PR. نأمل أن نصل إلى حيث يمكننا البدء في إضافة ميزات ومعالجة الأداء ، لكنني أخشى أن عدم معالجة الدين الفني الحالي أولاً سيجعل الوضع أسوأ.

يدعم conda-incubator/setup-miniconda@master الآن (لفترة) الجمع بين:

miniforge-variable: Mambaforge
use-mamba: true

والتي يجب أن تجيب في الغالب على البريد هنا ... إلى الحد الذي يمكن فيه تثبيت conda + python + mamba الكامل. حصل Micromamba على الكثير من التحديثات مؤخرًا ، لكنني ما زلت غير قادر على تقييمه فيما إذا كنا نريد دعمه / اختباره إلى نفس المستوى مثل مقدمي الخدمات الآخرين ، حتى الآن ...

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات