Open dhomeier opened 5 years ago
I ran screaming from this mess. I think if you can make it work at all, that's good enough for now. Part of the solution is aim for removing the py27 variants as soon as possible. Crossing py2 and py3 is a great way for things to implode. Patching so that it gets the correct version is technically the best thing to do, but it's not going to be fun.
🧨💥😱
Thanks for the feedback! Getting the versions straightened out turned out to require only a few patches, so I moved forward with that option. py27 is included in #413 with the LTS version 5.x, but I've removed all py34 variants (there is another LTS branch ipython 6.x for that, but it hopefully should not be needed by anyone).
I have just submitted PR #391 as first of a two-part attempt to replace the stale update in #164 to the IPython + Notebook system. The actual
jupyter-*
,nb*
andipython-py
andnotebook-py
updates themselves with their mess of circular dependencies are to follow in a second PR. In the course of this I have tried to understand the function of the various jupyter packages and scripts a bit better and found the current setup rather complicated and possibly confusing.Very briefly,
jupyter-core-pyXX
provides the scriptjupyter[XX]
, which acts as a launcher or (thin?) wrapper for the various commands provided byjupyter-client-pyXX
,nbformat-pyXX
,nbconvert-pyXX
andnotebook-pyXX
. It can detect and launch any commands in$PATH
under the name ofjupyter*
. E.g. with the currentpy27
andpy35
versions of the packages installed, one would findHere things begin becoming messed up, since some of the scripts are not managed under
update-alternatives
(and some currently are not working anyway). But even where they are, calling a versionedjupyter
launcher with a command will execute the highest installed version of that command script, e.g. in the above examplejupyter2.7 nbconvert
would launch thejupyter-nbconvert3.5
script (underpython3.5
), since the underlyingcommand.py
is callingMaybe not a critical issue, since apparently all the subcommand scripts can be called directly, but I'd at deem it at least confusing.
My plan for the new update is to put all scripts under
update-alternatives
administration and also standardise their names to the-pyNN
scheme. This would still leave the above behaviour of launching the highest installed version (unless called explicitly likejupyter-py27 kernel-py27
), but it would require moderate patches tocommand.py
to make jupyter see and execute exclusively the commands of its own Python version (sojupyter-py27 kernel
would always launch apython2.7
kernel). Thoughts?