[SciPy-User] Roll your own python distributions

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

[SciPy-User] Roll your own python distributions

David Baddeley
Hi all,

I'm wondering if anyone knows of an easy (or relatively easy) way of putting together a scientific python distribution with a one-click installer. I've got a python package with _lots_ of dependencies and would like to give users (with relatively limited computer skills) a simple way of installing python, my package, and all the dependencies. I have previously told people to download EPD, upgrade wxpython, and install a couple of additional packages (which is already pushing it in terms of what the users are comfortable with). The switch to canopy (with the accompanying move to a package management system in which one has to manually select which packages to install) makes this infeasible. The alternative distributions (PythonXY, Anaconda etc ...) are all either 32 bit only, or lack many of the packages I need, meaning that I'd need to get users to download a much longer list of additional packages. I want a python distribution, rather than just a py2exed version as parts of my code don't work well with py2exe.

Has anyone encountered this situation, and what did you do?

many thanks,
David

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: Roll your own python distributions

Matthieu Brucher-2
Hi David,

The latest Canopy version comes with a one-click/offline installer.

Cheers,

Matthieu

2013/9/12 David Baddeley <[hidden email]>:

> Hi all,
>
> I'm wondering if anyone knows of an easy (or relatively easy) way of putting
> together a scientific python distribution with a one-click installer. I've
> got a python package with _lots_ of dependencies and would like to give
> users (with relatively limited computer skills) a simple way of installing
> python, my package, and all the dependencies. I have previously told people
> to download EPD, upgrade wxpython, and install a couple of additional
> packages (which is already pushing it in terms of what the users are
> comfortable with). The switch to canopy (with the accompanying move to a
> package management system in which one has to manually select which packages
> to install) makes this infeasible. The alternative distributions (PythonXY,
> Anaconda etc ...) are all either 32 bit only, or lack many of the packages I
> need, meaning that I'd need to get users to download a much longer list of
> additional packages. I want a python distribution, rather than just a
> py2exed version as parts of my code don't work well with py2exe.
>
> Has anyone encountered this situation, and what did you do?
>
> many thanks,
> David
>
> _______________________________________________
> SciPy-User mailing list
> [hidden email]
> http://mail.scipy.org/mailman/listinfo/scipy-user
>



--
Information System Engineer, Ph.D.
Blog: http://matt.eifelle.com
LinkedIn: http://www.linkedin.com/in/matthieubrucher
Music band: http://liliejay.com/
_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: Roll your own python distributions

gyro-3
In reply to this post by David Baddeley
On 9/12/2013 8:52 PM, David Baddeley wrote:

> Hi all,
>
> I'm wondering if anyone knows of an easy (or relatively easy) way
> of putting together a scientific python distribution with a
> one-click installer. I've got a python package with _lots_ of
> dependencies and would like to give users (with relatively
> limited computer skills) a simple way of installing python, my
> package, and all the dependencies. I have previously told people
> to download EPD, upgrade wxpython, and install a couple of
> additional packages (which is already pushing it in terms of what
> the users are comfortable with). The switch to canopy (with the
> accompanying move to a package management system in which one has
> to manually select which packages to install) makes this
> infeasible. The alternative distributions (PythonXY, Anaconda etc
> ...) are all either 32 bit only, or lack many of the packages I
> need, meaning that I'd need to get users to download a much
> longer list of additional packages. I want a python distribution,
> rather than just a py2exed version as parts of my code don't work
> well with py2exe.
>
> Has anyone encountered this situation, and what did you do?
>
> many thanks, David
>


Hi David,

I recently taught a class in which we used Python and a variety of
scientific packages, and faced a similar problem. My approach was to
get things downloaded and tested locally before providing a
'batteries and extras included' distribution to the students.

I used Python(x,y), installed the necessary software locally into
this distribution, did thorough testing of all of the packages to be
used, zipped the whole enhanced distribution onto a few usb drives,
and had these available for students to copy.

Best regards,
gyro

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: Roll your own python distributions

Jerome Kieffer
On Thu, 12 Sep 2013 21:10:26 +0700
Gyro Funch <[hidden email]> wrote:

> I used Python(x,y), installed the necessary software locally into
> this distribution, did thorough testing of all of the packages to be
> used, zipped the whole enhanced distribution onto a few usb drives,
> and had these available for students to copy.

WinPython is even better as it has 64-bits support.
I add just a couple of .msi for the very specific stuff.

Cheers,

--
Jérôme Kieffer
On-Line Data analysis / Software Group
ISDD / ESRF
tel +33 476 882 445
_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: Roll your own python distributions

Jonathan Rocher
David, 

just to dwell on Mathieu's response, the move to canopy hasn't remove the ability to use the enpkg command from a terminal/command prompt to install packages. You should think of canopy as a GUI on top of EPD.

Hope this helps. 
Jonathan



On Thu, Sep 12, 2013 at 10:01 AM, Jerome Kieffer <[hidden email]> wrote:
On Thu, 12 Sep 2013 21:10:26 +0700
Gyro Funch <[hidden email]> wrote:

> I used Python(x,y), installed the necessary software locally into
> this distribution, did thorough testing of all of the packages to be
> used, zipped the whole enhanced distribution onto a few usb drives,
> and had these available for students to copy.

WinPython is even better as it has 64-bits support.
I add just a couple of .msi for the very specific stuff.

Cheers,

--
Jérôme Kieffer
On-Line Data analysis / Software Group
ISDD / ESRF
tel <a href="tel:%2B33%20476%20882%20445" value="+33476882445">+33 476 882 445
_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user



--
Jonathan Rocher, PhD
Scientific software developer
Enthought, Inc.
[hidden email]
1-512-536-1057
http://www.enthought.com


_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: Roll your own python distributions

Nathaniel Smith
In reply to this post by David Baddeley
On Thu, Sep 12, 2013 at 2:52 PM, David Baddeley
<[hidden email]> wrote:
> Hi all,
>
> I'm wondering if anyone knows of an easy (or relatively easy) way of putting
> together a scientific python distribution with a one-click installer.

IIRC Matthew Brett had something like this he put together, if he
doesn't pop up in the thread you might want to poke him and see if
it's available/usable.

-n
_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: Roll your own python distributions

Thomas Kluyver-2
In reply to this post by David Baddeley
On 12 September 2013 06:52, David Baddeley <[hidden email]> wrote:
I'm wondering if anyone knows of an easy (or relatively easy) way of putting together a scientific python distribution with a one-click installer. I've got a python package with _lots_ of dependencies and would like to give users (with relatively limited computer skills) a simple way of installing python, my package, and all the dependencies. I have previously told people to download EPD, upgrade wxpython, and install a couple of additional packages (which is already pushing it in terms of what the users are comfortable with). The switch to canopy (with the accompanying move to a package management system in which one has to manually select which packages to install) makes this infeasible. The alternative distributions (PythonXY, Anaconda etc ...) are all either 32 bit only, or lack many of the packages I need, meaning that I'd need to get users to download a much longer list of additional packages. I want a python distribution, rather than just a py2exed version as parts of my code don't work well with py2exe.

I've recently put together a template for an NSIS installer for a Python application. Instead of freezing code with py2exe or similar tools, it installs a Python interpreter using an MSI from python.org, and then sets up the application to run with that. It would certainly be possible to extend this to install a set of packages. At the moment, it's quite rough, so I wouldn't call this an easy solution, but it might be "relatively easy" depending on what alternatives you're considering.

Thomas

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: Roll your own python distributions

David Baddeley
Many thanks for all the suggestions ... at this stage I think I might end up going with WinPython and just distributing a .zip of the folder that I've set everything up in. The NSIS template definitely looks like it might be a good option for take 2 ...

cheers,
David


From: Thomas Kluyver <[hidden email]>
To: David Baddeley <[hidden email]>; SciPy Users List <[hidden email]>
Sent: Thursday, 12 September 2013 4:51 PM
Subject: Re: [SciPy-User] Roll your own python distributions

On 12 September 2013 06:52, David Baddeley <[hidden email]> wrote:
I'm wondering if anyone knows of an easy (or relatively easy) way of putting together a scientific python distribution with a one-click installer. I've got a python package with _lots_ of dependencies and would like to give users (with relatively limited computer skills) a simple way of installing python, my package, and all the dependencies. I have previously told people to download EPD, upgrade wxpython, and install a couple of additional packages (which is already pushing it in terms of what the users are comfortable with). The switch to canopy (with the accompanying move to a package management system in which one has to manually select which packages to install) makes this infeasible. The alternative distributions (PythonXY, Anaconda etc ...) are all either 32 bit only, or lack many of the packages I need, meaning that I'd need to get users to download a much longer list of additional packages. I want a python distribution, rather than just a py2exed version as parts of my code don't work well with py2exe.

I've recently put together a template for an NSIS installer for a Python application. Instead of freezing code with py2exe or similar tools, it installs a Python interpreter using an MSI from python.org, and then sets up the application to run with that. It would certainly be possible to extend this to install a set of packages. At the moment, it's quite rough, so I wouldn't call this an easy solution, but it might be "relatively easy" depending on what alternatives you're considering.

Thomas



_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: Roll your own python distributions

gyro-3
In reply to this post by Jerome Kieffer
On 9/12/2013 10:01 PM, Jerome Kieffer wrote:

> On Thu, 12 Sep 2013 21:10:26 +0700 Gyro Funch
> <[hidden email]> wrote:
>
>> I used Python(x,y), installed the necessary software locally
>> into this distribution, did thorough testing of all of the
>> packages to be used, zipped the whole enhanced distribution
>> onto a few usb drives, and had these available for students to
>> copy.
>
> WinPython is even better as it has 64-bits support. I add just a
> couple of .msi for the very specific stuff.
>
> Cheers,
>


You are right. My 'extras-included' distribution had a generic name,
but now that I check carefully, I ended up using WinPython as the base.

Kind regards,
gyro

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: Roll your own python distributions

Matthew Brett
In reply to this post by Nathaniel Smith
Hi,

On Thu, Sep 12, 2013 at 12:52 PM, Nathaniel Smith <[hidden email]> wrote:

> On Thu, Sep 12, 2013 at 2:52 PM, David Baddeley
> <[hidden email]> wrote:
>> Hi all,
>>
>> I'm wondering if anyone knows of an easy (or relatively easy) way of putting
>> together a scientific python distribution with a one-click installer.
>
> IIRC Matthew Brett had something like this he put together, if he
> doesn't pop up in the thread you might want to poke him and see if
> it's available/usable.

For our course we recommended Python X Y for windows.

As Nathaniel said, I built my own installer for OSX - I should
automate it a bit - but it worked without hitch for I guess 20
participants with Macs:

Installer: http://nipy.bic.berkeley.edu/practical_neuroimaging/reginald.dmg

Notes on building the thing: https://github.com/matthew-brett/reginald

Cheers,

Matthew
_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user
Reply | Threaded
Open this post in threaded view
|

Re: Roll your own python distributions

Travis Oliphant-6
In reply to this post by David Baddeley
Hi David, 

You might consider a different approach to this installation problem entirely.      Rather than build your own installer, use conda and binstar to create your own "package collection".     Conda is BSD and completely open and free.    Binstar is a free service and you could replace it with your own conda repository if you wanted to (it's not difficult to make a conda repository --- just a directory of packages and an index file).  

The advantage is that users will then be able to easily manage the collection, create environments, and you will be able to more easily update their installation.   This works right now.   You could also do some work and make it even easier for your users. 

What you do: 

   1) Create conda packages for all libraries that are not already in repositories -- you could also copy the packages into your own repo.
   2) Create a meta-package that is your "distribution"  (that's all Anaconda is...)
   3) Create a binstar account and upload your conda packages and the meta-package to binstar (the binstar command-line client makes this easy). 

What users do: 

  1) Install miniconda:  http://repo.continuum.io/miniconda/index.html   (Just Python and conda the package manager)
  2) conda config -f --add channels http://conda.binstar.org/<your_org_name>
  3) conda create -n <your_meta_environment> <your_meta_package_name>

You could even wrap up the steps 1-3 in a simple NSIS installer (I'm sure Ilan could even give you the miniconda installer NSIS source so that you could just make your own installer that effectively does those things).    You could also skip the environment creation, but creating the environment would let other meta-packages be installed and share resources without fighting over version numbers for competing packages. 

Ilan and I have been at this for a long while now, and we think we've found an approach that should scale with conda and binstar.   The nice thing about using Miniconda is that your users now can install packages from many more people than just what you provide as well. 

If you have questions feel free to email and ask them to the [hidden email] mailing list or the conda mailing list. 

Best,

-Travis







On Thu, Sep 12, 2013 at 8:52 AM, David Baddeley <[hidden email]> wrote:
Hi all,

I'm wondering if anyone knows of an easy (or relatively easy) way of putting together a scientific python distribution with a one-click installer. I've got a python package with _lots_ of dependencies and would like to give users (with relatively limited computer skills) a simple way of installing python, my package, and all the dependencies. I have previously told people to download EPD, upgrade wxpython, and install a couple of additional packages (which is already pushing it in terms of what the users are comfortable with). The switch to canopy (with the accompanying move to a package management system in which one has to manually select which packages to install) makes this infeasible. The alternative distributions (PythonXY, Anaconda etc ...) are all either 32 bit only, or lack many of the packages I need, meaning that I'd need to get users to download a much longer list of additional packages. I want a python distribution, rather than just a py2exed version as parts of my code don't work well with py2exe.

Has anyone encountered this situation, and what did you do?

many thanks,
David

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user




--

Travis Oliphant
Continuum Analytics, Inc.

_______________________________________________
SciPy-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/scipy-user