New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hydrogen v0.7.0 incompatible with Ubuntu 14.04 LTS (IPython v1.2.1) #173
Comments
I tested async methods and the only thing it fixes - small freeze of UI on hydrogen start. What I can propose:
this may lead to first-time undiscoverability of freshly installed kernel, but thats ok, we had this before this commit I'd chose to use spawnSync because:
|
I'd like to find a solution that is kind to Ubuntu users. I think having the option to store kernel specs in the Hydrogen settings would help a little. An Ubuntu user could edit the settings to workaround this issue. However, this won't do for Ubuntu users that lack the technical knowledge to create a kernel spec. In the past, I thought of adding a flag to install the IJavascript kernel in Hydrogen. This would be possible, if the Hydrogen settings stored kernel specs. |
What the trouble with Ubuntu? They don't have ipython or jupyter in their paths? In iTourch docs i found this:
So they should have iPython to work. And so it isn't in PATH as I think.
I don't wont user to edit anything, just memoize kernelspecs generated by |
The issue is that |
I don't think this is high priority feature. If I found time to rewrite it in async way I'll do it. If you or someone else do PR it would be great. Just curious: Why are you using necrostable lts on development machine? |
To ensure Hydrogen runs in the version that Ubuntu currently advertises as "recommended for most users". |
Added notification: Can you test this? |
Do I understand correctly? You want to prevent the installation of Hydrogen on Node.js 0.10 systems? If so, I don't support this change. |
I have to leave now. Let's continue discussing the options to address this issue tomorrow. BTW, have you seen https://www.npmjs.com/package/ipython-paths and https://www.npmjs.com/package/jupyter-paths ? |
Yeah we discussed that with Kyle. @rgbkrk #145 I don't want to rewrite half of hydrogen (all code is synchronous) to achieve small improvement - non freezing for half second. I've tried couple times, but haven't found enough motivation. Doing the same to support Ubuntu LTS, really? |
I agree with doing away with Atom isn't using 0.10 though is it? My current version is 4.1.1. Is that an issue that which happens on install with
Not all of Hydrogen is sync, especially the kernel messaging. We're getting really close to where we need zmq-prebuilt to be and I'll be shipping a release soon for us to use, which dodges both the python2/node-gyp problem and the need zmq headers problem. There are more packages for us (nteract at large) to finalize, then we can start getting them in Hydrogen (mostly to be spec compliant with Jupyter and also so we're not duplicating so much code). |
@n-riesco Have you tried out aggregating outputs from |
@rgbkrk $ apm install
Installing modules ✗
> Hydrogen@0.7.0 preinstall /home/user/Documents/sync/src/github.com/hydrogen
> node dependencies.js
/home/user/Documents/sync/src/github.com/hydrogen/dependencies.js:9
throw "Please install iojs or node >= 0.12. Hydrogen doesn't support older
^
Please install iojs or node >= 0.12. Hydrogen doesn't support older versions of node
npm ERR! Linux 3.13.0-79-generic
npm ERR! argv "/home/user/share/atom/resources/app/apm/bin/node" "/home/user/share/atom/resources/app/apm/node_modules/npm/bin/npm-cli.js" "--globalconfig" "/home/user/.atom/.apm/.apmrc" "--userconfig" "/home/user/.atom/.apmrc" "install" "--target=0.34.5" "--arch=x64"
npm ERR! node v0.10.40
npm ERR! npm v2.13.3
npm ERR! code ELIFECYCLE
npm ERR! Hydrogen@0.7.0 preinstall: `node dependencies.js`
npm ERR! Exit status 8
npm ERR!
npm ERR! Failed at the Hydrogen@0.7.0 preinstall script 'node dependencies.js'.
npm ERR! This is most likely a problem with the Hydrogen package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node dependencies.js
npm ERR! You can get their info via:
npm ERR! npm owner ls Hydrogen
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/user/Documents/sync/src/github.com/hydrogen/npm-debug.log |
|
|
Reading through issue atom/apm#328 I understand that the install scripts run in |
dependecies.js wasn't shipped into 0.7.0 - it's experimental. I have removed decencies check 9564649 Will rewrite this later with |
@slavaGanzin You're right, I've just check and it seems to install:
but now Hydrogen doesn't seem to load, because of the IPython version:
|
I haven't tested the code below, but I was hoping to have the option to define kernelspecs in the Hydrogen settings: getAvailableKernels: _.memoize ->
availableKernels = []
try
out = child_process.spawnSync('jupyter',['kernelspec','list', '--json']).stdout.toString()
specs = _.pluck(JSON.parse(out).kernelspecs, 'spec')
availableKernels = _.union availableKernels specs
catch
try
out = child_process.spawnSync('ipython',['kernelspec','list', '--json']).stdout.toString()
specs = _.pluck(JSON.parse(out).kernelspecs, 'spec')
availableKernels = _.union availableKernels specs
catch
try
out = @getConfigJson('kernelspecs')
specs = _.pluck(JSON.parse(out).kernelspecs, 'spec')
availableKernels = _.union availableKernels specs
catch
return availableKernels |
Why you need self-defined kernelspecs? |
Because in Ubuntu 14.04 both Having the option to define kernelspecs in the Hydrogen settings not only helps workaround this issue, but also helps with issue #38 . |
And how your ipython installation works than? |
I've checked and the code below works for me: getAvailableKernels: _.memoize ->
availableKernels = []
try
out = child_process.spawnSync('jupyter',['kernelspec','list', '--json']).stdout.toString()
specs = _.pluck(JSON.parse(out).kernelspecs, 'spec')
availableKernels = _.union(availableKernels, specs)
catch
try
out = child_process.spawnSync('ipython',['kernelspec','list', '--json']).stdout.toString()
specs = _.pluck(JSON.parse(out).kernelspecs, 'spec')
availableKernels = _.union(availableKernels, specs)
catch
try
out = @getConfigJson('kernelspecs')
specs = _.pluck(out, 'spec')
availableKernels = _.union(availableKernels, specs)
catch
return availableKernels module.exports = Hydrogen =
config:
kernelspecs:
title: "Kernel Specs"
description: 'Kernel specs as reported by:
$ jupyter kernelspecs list --json
E.g.:
{
"ijavascript": {
"spec": {
"display_name": "IJavascript",
"env": {},
"argv": [
"node",
"/home/user/node_modules/ijavascript/lib/kernel.js",
"--protocol=5.0",
"{connection_file}"
],
"language": "javascript"
},
"resources_dir": "/home/user/node_modules/ijavascript/images"
}
}'
type: 'string'
default: '{}' |
@slavaGanzin IPython v1.2.1 doesn't recognise the option
|
* Added `kernelspec` setting.
#177 Play with this branch. kernelspecs option should work too. How would you generate it? |
#177 Should fix it |
We shouln't use
spawnSync
if Node.js is version 0.10. See this commit, this commit and this issue.@slavaGanzin @rgbkrk what are your thoughts on this issue?
The text was updated successfully, but these errors were encountered: