Yes, is this a piece that I left out of my response to Matthias.

This is what I have in my script:
runner = preprocessors.ExecutePreprocessor(kernel_name='probscale') # name 
of the env

Where "probscale" is the name of the kernel (and my conda env)



On Tuesday, February 7, 2017 at 1:39:12 PM UTC-8, takowl wrote:
>
> If ipykernel is installed where you're running the script, I think it 
> should also be possible to tell nbconvert to use it directly, something 
> like this:
>
> runner = preprocessors.ExecutePreprocessor(kernel_name='python3')  # or 
> 'python2', as appropriate
>
> On 7 February 2017 at 21:16, Matthias Bussonnier <[email protected] 
> <javascript:>> wrote:
>
>> Great !
>>
>> Sorry about the inconvenience.
>> I'm not sure how things would interact, but if you install the spec
>> with the right `--name` you might not have to switch each notebook.
>>
>> Cheers,
>> --
>> M
>>
>> On Tue, Feb 7, 2017 at 1:14 PM, Paul Hobson <[email protected] 
>> <javascript:>> wrote:
>> > Matthias,
>> >
>> > Many thanks for the quick response and helpful solution.
>> >
>> > Indeed, running:
>> >
>> > $ # source activate <envname> # non-windows
>> > $ activate <envname> # windows
>> > (envname) $ python -m ipykernel install --name <envname>
>> >
>> > And then manually changing the kernel in each of the notebooks before
>> > running my script solved it.
>> >
>> >
>> > On Tue, Feb 7, 2017 at 1:05 PM, Matthias Bussonnier
>> > <[email protected] <javascript:>> wrote:
>> >>
>> >> Hi Paul,
>> >>
>> >> As far as I can tell this is one of the limit of the conda extension
>> >> shiped with conda that autolist the kernelspecs. It does not work with
>> >> nbconvert.
>> >> You need to activate the env and manually install the spec using
>> >> `python -m ipykernel install <--options>`, and set the notebook to use
>> >> this kernelspec using the notebook UI.
>> >> Then, it should work.
>> >>
>> >> Cheers,
>> >> --
>> >> M
>> >>
>> >> On Tue, Feb 7, 2017 at 12:58 PM, Paul Hobson <[email protected] 
>> <javascript:>> wrote:
>> >> > Hey folks,
>> >> >
>> >> > I've been searching all morning, but coming up empty. The question is
>> >> > this:
>> >> > Is there a way to using the nbconvert python API with a kernel 
>> installed
>> >> > in
>> >> > a conda environment?
>> >> >
>> >> >
>> >> > Background:
>> >> > I'm trying to write a documentation build script for a module that
>> >> > converts
>> >> > notebooks to RST, and then compiles HTML docs with Sphinx.
>> >> >
>> >> > I have installed the module I'm documenting into an isolated conda
>> >> > environment called "probscale".
>> >> >
>> >> > So with this trivial notebook (note the kernelspec):
>> >> >
>> >> > a_test.ipynb:
>> >> > {
>> >> >  "cells": [
>> >> >   {
>> >> >    "cell_type": "code",
>> >> >    "execution_count": 1,
>> >> >    "metadata": {
>> >> >     "collapsed": false
>> >> >    },
>> >> >    "outputs": [
>> >> >     {
>> >> >      "name": "stdout",
>> >> >      "output_type": "stream",
>> >> >      "text": [
>> >> >       "[-0.04809765 -0.65510951 -0.06389409 -0.78956431  
>> 1.12613107]\n"
>> >> >      ]
>> >> >     }
>> >> >    ],
>> >> >    "source": [
>> >> >     "import numpy\n",
>> >> >     "print(numpy.random.normal(size=5))"
>> >> >    ]
>> >> >   }
>> >> >  ],
>> >> >  "metadata": {
>> >> >   "anaconda-cloud": {},
>> >> >   "kernelspec": {
>> >> >    "display_name": "Python [conda env:probscale]",
>> >> >    "language": "python",
>> >> >    "name": "conda-env-probscale-py"
>> >> >   },
>> >> >   "language_info": {
>> >> >    "codemirror_mode": {
>> >> >     "name": "ipython",
>> >> >     "version": 3
>> >> >    },
>> >> >    "file_extension": ".py",
>> >> >    "mimetype": "text/x-python",
>> >> >    "name": "python",
>> >> >    "nbconvert_exporter": "python",
>> >> >    "pygments_lexer": "ipython3",
>> >> >    "version": "3.5.2"
>> >> >   }
>> >> >  },
>> >> >  "nbformat": 4,
>> >> >  "nbformat_minor": 2
>> >> > }
>> >> >
>> >> > When I run:
>> >> >
>> >> > if 1:
>> >> >     import nbformat
>> >> >     from nbconvert import preprocessors
>> >> >
>> >> >     nbfile = 'a_test.ipynb'
>> >> >     meta = {
>> >> >         'metadata': {
>> >> >             'path': '.',
>> >> >         }
>> >> >
>> >> >     }
>> >> >     with open(nbfile, 'r') as nbf:
>> >> >         nbook = nbformat.read(nbf, as_version=4)
>> >> >
>> >> >     runner = preprocessors.ExecutePreprocessor()
>> >> >     runner.preprocess(nbook, meta)
>> >> >
>> >> >     with open(nbfile, 'w') as nbf:
>> >> >         nbformat.write(nbook, nbf)
>> >> >
>> >> > I get a KeyError and a NoSuchKernal error
>> >> >
>> >> >
>> >> > 
>> ---------------------------------------------------------------------------
>> >> > KeyError                                  Traceback (most recent call
>> >> > last)
>> >> >
>> >> > 
>> C:\Users\phobson\Miniconda3\envs\probscale\lib\site-packages\jupyter_client\kernelspec.py
>> >> > in get_kernel_spec(self, kernel_name)
>> >> >     172         try:
>> >> > --> 173             resource_dir = d[kernel_name.lower()]
>> >> >     174         except KeyError:
>> >> >
>> >> > KeyError: 'conda-env-probscale-py'
>> >> >
>> >> > [snip]
>> >> >
>> >> >
>> >> > 
>> C:\Users\phobson\Miniconda3\envs\probscale\lib\site-packages\jupyter_client\kernelspec.py
>> >> > in get_kernel_spec(self, kernel_name)
>> >> >     173             resource_dir = d[kernel_name.lower()]
>> >> >     174         except KeyError:
>> >> > --> 175             raise NoSuchKernel(kernel_name)
>> >> >     176
>> >> >     177         return self._get_kernel_spec_by_name(kernel_name,
>> >> > resource_dir)
>> >> >
>> >> > NoSuchKernel: No such kernel named conda-env-probscale-py
>> >> >
>> >> >
>> >> >
>> >> > I tried adding the kernel spec from the notebook to metadata passed 
>> to
>> >> > runner.preprocess(nbook, meta), but that produced the same result.
>> >> >
>> >> >
>> >> > Any thoughts or guidance would be much appreciated.
>> >> >
>> >> >
>> >> > Cheers,
>> >> >
>> >> > -Paul
>> >> >
>> >> > --
>> >> > You received this message because you are subscribed to the Google
>> >> > Groups
>> >> > "Project Jupyter" group.
>> >> > To unsubscribe from this group and stop receiving emails from it, 
>> send
>> >> > an
>> >> > email to [email protected] <javascript:>.
>> >> > To post to this group, send email to [email protected] 
>> <javascript:>.
>> >> > To view this discussion on the web visit
>> >> >
>> >> > 
>> https://groups.google.com/d/msgid/jupyter/cbee4894-2f86-44f0-a130-2cf63081e47c%40googlegroups.com
>> .
>> >> > For more options, visit https://groups.google.com/d/optout.
>> >>
>> >> --
>> >> You received this message because you are subscribed to the Google 
>> Groups
>> >> "Project Jupyter" group.
>> >> To unsubscribe from this group and stop receiving emails from it, send 
>> an
>> >> email to [email protected] <javascript:>.
>> >> To post to this group, send email to [email protected] 
>> <javascript:>.
>> >> To view this discussion on the web visit
>> >> 
>> https://groups.google.com/d/msgid/jupyter/CANJQusW2j%2B%3DSGrr%3DodjNEsXgTHwGHHNxQd0LCsksE2K8x4iqTw%40mail.gmail.com
>> .
>> >> For more options, visit https://groups.google.com/d/optout.
>> >
>> >
>> > --
>> > You received this message because you are subscribed to the Google 
>> Groups
>> > "Project Jupyter" group.
>> > To unsubscribe from this group and stop receiving emails from it, send 
>> an
>> > email to [email protected] <javascript:>.
>> > To post to this group, send email to [email protected] 
>> <javascript:>.
>> > To view this discussion on the web visit
>> > 
>> https://groups.google.com/d/msgid/jupyter/CADT3MECr_J1kgHaFBOdv22wrR44kzUDzSZzE2_H%3DOkMchzmWAA%40mail.gmail.com
>> .
>> >
>> > For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "Project Jupyter" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jupyter/CANJQusULtS_3UzoqSadiZyVv4EVA0e36uCYhYs9PsxrJiR5Lyg%40mail.gmail.com
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Project Jupyter" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jupyter/6477ad6a-ade0-421c-ae6a-a50d354a644b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to