Setup-miniconda: وجود مشاكل في تنشيط البيئة

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

أواجه مشكلة ببساطة في تنشيط بيئة base . هذا مقتطف من وصفتي:

    - uses: conda-incubator/setup-miniconda<strong i="7">@v2</strong>
      with:
        auto-update-conda: true
        auto-activate-base: true
        activate-environment: base
    - run: conda info
    - run: conda env update -n base --file environment.yaml

انا احصل

Error: To activate "base" environment use the "auto-activate-base" action input!

كيف يمكنني تحسينه ليعمل بالفعل؟

question

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

عظيم @ goanpeca ، شكرا للمساعدة والعلاقات العامة !!

إذا كان بإمكاني تقديم تجربة شخصية في الملف التمهيدي أثناء إغلاق هذا السؤال:

  • سيكون من الرائع توثيق أن اسم البيئة الافتراضي لحالتي هو test ، لا أعتقد أنني وجدت ذلك في أي مكان.
  • شخصيًا ، سيكون من المفيد (تحرير) الحصول على بعض الأمثلة النموذجية الكاملة (على سبيل المثال ، اختبار Python و CMake). ثم كانت بعض المزالق التي واجهتها أكثر وضوحًا بالنسبة لي (بالطبع ، كل شيء موجود ، إنه فقط من وقت لآخر قارئ كسول ، ويساعد عندما يتم تقديم الأشياء "في وجهك").

ال 11 كومينتر

استبدل ب:

    - uses: conda-incubator/setup-miniconda<strong i="6">@v2</strong>
        with:
          environment-file: environment.yaml
          activate-environment: <name stated in environment.yaml>
          auto-activate-base: false
    - run: conda info

شكرا jaimergp . ماذا عن حالة عدم وجود اسم بيئة محدد في environment.yaml ؟

ألا يمكنك إضافة أي اسم للملف؟ إذا لم يكن موجودًا في الريبو الخاص بك ، فربما يتم تصحيحه بـ echo "name: test" >> environment.yaml قبل استخدام setup-miniconda ؟

jaimergp بالتأكيد يمكنني إضافة وصفة CI نفسها. لا أحب القيام بذلك بشكل عام ، أعتقد أنه من غير الضروري تحديد الاسم في ملف البيئة ، وبقدر ما أعلم أنه من الجيد تمامًا أن لا تحدده Conda.

على نطاق أوسع ، ألا يجب أن يكون الإجراء قادرًا على التعامل مع الإعداد الخاص بي أيضًا؟

مرحبا @ tdegeus شكرا على التقرير. jaimergp لا يمكنني التذكر الآن إذا أضفنا الاسم "test" افتراضيًا إلى ملف yaml إذا لم يكن الاسم موجودًا هناك.

نحن بحاجة إلى التحقق مرة أخرى.

يبدو بالفعل أن اسم البيئة "الافتراضي" هو test في هذه الحالة goanpeca . ولكن مع الأوامر أعلاه ، ما زلت لا أحصل على بيئة نشطة بشكل صحيح. فيما يلي تفاصيل https://github.com/tdegeus/shelephant/pull/12

    steps:
    - uses: actions/checkout<strong i="9">@v2</strong>
    - uses: conda-incubator/setup-miniconda<strong i="10">@v2</strong>
      with:
        environment-file: environment.yaml
        activate-environment: test
        auto-activate-base: false
    - run: conda info

مخرجات الأمر الأخير:

      active environment : None
        user config file : /home/runner/.condarc
  populated config files : /home/runner/.condarc
           conda version : 4.8.3
     conda-build version : not installed
          python version : 3.8.3.final.0
        virtual packages : __glibc=2.27
        base environment : /usr/share/miniconda  (writable)
            channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                           https://conda.anaconda.org/conda-forge/noarch
                           https://repo.anaconda.com/pkgs/main/linux-64
                           https://repo.anaconda.com/pkgs/main/noarch
                           https://repo.anaconda.com/pkgs/r/linux-64
                           https://repo.anaconda.com/pkgs/r/noarch
           package cache : /home/runner/conda_pkgs_dir
        envs directories : /usr/share/miniconda/envs
                           /home/runner/.conda/envs
                platform : linux-64
              user-agent : conda/4.8.3 requests/2.23.0 CPython/3.8.3 Linux/5.4.0-1031-azure ubuntu/18.04.5 glibc/2.27
                 UID:GID : 1001:116
              netrc file : None
            offline mode : False

في الواقع ، إذا نظرت إلى الأسطر التي تثبت الحزم في environment.yaml ، يتم إخراج ذلك

# To activate this environment, use
#
#     $ conda activate test
#
# To deactivate an active environment, use
#
#     $ conda deactivate

مما يشير إلى أن البيئة لم يتم تفعيلها.

tdegeus نظرًا لكيفية عمل إجراءات github ، فأنت بحاجة إلى تحديد وسيطات إضافية للإجراءات كما هو موضح في README للأصداف المختلفة.

      - name: Conda info
        shell: bash -l {0}
        run: conda info

إذا لم تستخدم shell: bash -l {0} بافتراض أنك تستخدم bash ، فلن يتمكن الإجراء من تنشيط البيئات بشكل صحيح.

هذا قيد معروف ، يمكنك قراءة المزيد هنا

goanpeca لذا يجب أن أفعل ذلك لكل سطر أريد استخدام البيئة فيه؟

من قبل ، استخدمت بعض الإجراءات التي لم يكن لها هذا القيد:

    - uses: s-weigand/setup-conda<strong i="8">@v1</strong>
    - run: conda --version
    - run: conda env update -n base --file environment.yaml

تضمين التغريدة

لذا يجب أن أفعل ذلك في كل سطر أريد استخدام البيئة فيه؟

نعم أو استخدم غلافًا افتراضيًا إذا كانت جميع خطواتك ستستخدم نفس الصدفة ، كما هو موضح في:
https://docs.github.com/ar/free-pro-team@latest/actions/reference/workflow -syntax-for-github-Actions # jobsjob_iddefaultsrun

من قبل ، استخدمت بعض الإجراءات التي لم يكن لها هذا القيد:

نعم ، هذا الإجراء لا ينشط البيئات بشكل صحيح.

tdegeus https://github.com/conda-incubator/setup-miniconda/pull/96 يضيف معلومات حول ما شرحته في التعليق.

أعتقد أنه يمكننا إغلاق القضية. إذا لم يكن الأمر كذلك ، فالرجاء إخبارنا بما يمكننا فعله لتحسين الإجراء.

شكرا مرة أخرى على ردود الفعل :-)

عظيم @ goanpeca ، شكرا للمساعدة والعلاقات العامة !!

إذا كان بإمكاني تقديم تجربة شخصية في الملف التمهيدي أثناء إغلاق هذا السؤال:

  • سيكون من الرائع توثيق أن اسم البيئة الافتراضي لحالتي هو test ، لا أعتقد أنني وجدت ذلك في أي مكان.
  • شخصيًا ، سيكون من المفيد (تحرير) الحصول على بعض الأمثلة النموذجية الكاملة (على سبيل المثال ، اختبار Python و CMake). ثم كانت بعض المزالق التي واجهتها أكثر وضوحًا بالنسبة لي (بالطبع ، كل شيء موجود ، إنه فقط من وقت لآخر قارئ كسول ، ويساعد عندما يتم تقديم الأشياء "في وجهك").
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات