Skip to content

quarto-dev/quarto-actions/render@v2 is not using jupyter from conda environment #101

@eculler

Description

@eculler

I am trying to publish a site via GitHub Actions. I can render successfully on my machine using quarto cli (quarto render . and quarto publish, and when I do not include any pages with jupyter: python3 specified in the yaml header, my action works. However, when it hits a page with

---
jupyter: python3
---

in the front matter yaml it fails with:

[10/12] pages/01-reproducible-science-tools/open-reproducible-science/03-best-practices.qmd
Starting python3 kernel...Traceback (most recent call last):
  File "/opt/quarto/share/jupyter/jupyter.py", line 21, in <module>
    from notebook import notebook_execute, RestartKernel
  File "/opt/quarto/share/jupyter/notebook.py", line 17, in <module>
    import nbformat
ModuleNotFoundError: No module named 'nbformat'
Python 3 installation:
  Version: 3.10.12
  Path: /usr/bin/python3
  Jupyter: (None)
Jupyter is not available in this Python installation.
Install with python3 -m pip install jupyter
There is a environment.yml file in this directory. Is this for a conda env that you need to restore?

I installed and activated my conda environment (which include nbformat, whole environment definition here: https://github.com/cu-esiil-edu/esiil-learning-portal/blob/main/environment.yml) with the following action yaml:

jobs:
  build-deploy:
    runs-on: ubuntu-latest
    defaults:
      run:
        shell: bash -el {0}
    permissions:
      contents: write
    steps:
      ...
      - name: Create and Activate Conda
        uses: conda-incubator/setup-miniconda@v3
        with:
          activate-environment: learning-portal
          environment-file: environment.yml
          auto-activate-base: false

Using shell: bash -el {0} I have found is necessary to get the conda activation to stick for regular shell commands. And I have checked that the environment is activated and available as a kernel to shell commands with the following:

Run jupyter kernelspec list
Available kernels:
  python3    /usr/share/miniconda/envs/learning-portal/share/jupyter/kernels/python3

However, you will notice in the error above that the quarto-actions render action is using /opt/quarto/share/jupyter/jupyter.py as jupyter, and not the version from my environment.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions