jparyani / ipython

Official repository for IPython itself. Other repos in the IPython organization contain things like the website, documentation builds, etc.
http://ipython.org
6 stars 6 forks source link

scikit-learn RFE #1

Closed dckc closed 9 years ago

dckc commented 9 years ago

import sklearn gives ImportError: No module named sklearn

I can't pip install scikit-learn either: ExceptionPexpect: Error! pty.fork() failed: out of pty devices.

jparyani commented 9 years ago

Alright next release, I'll add the scikit-learn package (and a bunch of other scikit packages that I missed). For now, I can make a custom package for you that contains it. Before I do, are there any other packages that you know you need?

There's two problems with running `pip install scikit-learn' inside of Sandstorm. First, we don't have pty devices inside of a grain, so IPython's attempts to call out to a shell will always fail since it expects one. Second, outgoing connections are blocked, so it will never be able to connect to pypi and download the packages.

In general, we're thinking of ways of allowing add-on packages that would allow you to extend the functionality of other packages, but that is not yet implemented in Sandstorm.

dckc commented 9 years ago

so far, I have only worked with pandas, matplotlib, and scikit-learn, I think. maybe I can check.

jparyani commented 9 years ago

An spk with scikit-learn added is up at https://drive.google.com/file/d/0BzLCOahiEfRWd3RyMEd3MXB4WEU/view?usp=sharing. You will have to download this, and then manually use the "Upload an App" button. A new version will also go up on https://sandstorm.io/apps/ within the next few days.

dckc commented 9 years ago

got it; thanks! 2e09d74bf49e94ac9442008eb81a42d6 ipython.spk

dckc commented 9 years ago

p.s. I wonder if wheel archives would help here. If I could upload a wheel to my grain, I could probably install it, no?

Is there a sandstorm app for generic file sharing that would let me upload stuff? Then I could share that file to my ipython grain?

jparyani commented 9 years ago

Wheel archives would definitely be good to use, seeing as we know the platform is x86_64 linux ahead of time, and we don't want to have to build packages inside the grain. If you could somehow get the wheel up there, then yes in theory, you should be able to install it with pip install --user my_wheel. the --user is necessary since all directories except /var (which is also $HOME) and /tmp are read-only.

Unfortunately a file manager as you describe isn't available yet in Sandstorm. It's awaiting the Powerbox feature that will allow grains to communicate/share data with other grains.

I'm going to close this issue for now, but once the powerbox is up and working, I'll be sure to try and add some kind of basic functionality for installing packages inside of a grain.