Re: [PyQt] Inter-office distribution/installation of packages/modules

2011-07-03 Thread Erik Janssens

That's indeed an interesting approach.  We only update a single
egg (that egg than contains our app and the libraries that change
most often).  The application is thus able to update itself and
restart itself with some kind of bootstrapper.  The egg itself
is in the User Data folder, so that any user is able to update
its app.

Don't you have issues with permissions and virus scanners and
such when updating DLL's and things in C:\Program Files\... ?

On Sat, 2011-07-02 at 18:43 +, Demetrius Cassidy wrote:
 Basically the updater is a separate python program, built using
 twisted. It is self contained, and can update any file on our project.
 The client queries the server for the client version, and if it's out
 of date, it launchers the patcher and quits. It's not part of py2exe
 itself, though it's packaged into a self contained exe with py2exe,
 just like our program.
 
 
 For our client, many dlls are updated on a regular basis for bug
 fixes. But you can update python code, since it's just stored in
 a .zip file (just have the updater dl the updated zip file and copy it
 over).
 
 
 On Tue, Jun 28, 2011 at 6:41 PM, Erik Janssens
 erik.janss...@conceptive.be wrote:
 that's interesting, how do you handle the auto update with
 py2exe ?
 which part of the app gets updated ?
 
 On Fri, Jun 17, 2011 at 12:58 AM, Demetrius Cassidy
 dcassid...@gmail.com wrote:
  We have an app which must be redistributed to multiple
 groups, with 40+
  users and py2exe is the reason we are able to do this.
 Gui2exe makes the
  building simpler.
 
  If you need to debug, you won't be running the bundled app,
 so I don't see
  why you would need to so much other than making sure it runs
 when bundled.
 
  If your packages are making assumptions on how your
 enviroment is set up,
  IMO I think that is wrong and will only lead to problems
 down the road.
 
  And the last thing, is that we have an auto updater, so new
 releases only
  require a rebuild and push to the sever.
 
  On Jun 16, 2011 2:58 PM, Erik Janssens
 erik.janss...@conceptive.be
  wrote:
  Hi,
 
  I would not agree with using Py2exe, while the idea is
 nice, we have had
  many
  issues with it, basically for 2 reasons :
 
  - it's dependency analysis, in combination with automatic
 updates : if
  your
  update
  uses a part of a package that was not used in the original
 package, you
  need to
  redeploy everything, instead of just the part of your app
 that you update
 
  - it changes the 'environment' your app runs in (eg
 sys.path), while it is
  possible
  to work around it in your app, you need to make sure that
 none of the
  packages
  you use make certain assumption on the environment
 
  This combination means that in order to properly test your
 application,
  you
  need
  to continuously rebuild your app with py2exe, and run it.
 notice some
  error,
  fix it,
  rebuild, etc. This takes far too much time.
 
  So what we did was :
 
  - build a custom python distro with all 'binary' packages
 included we need
  that
  does not depend on registry settings and does not conflict
 with
  potentially other
  pythons installed on the machine, so we can develop, test
 and deploy in
  exactly the same environment
 
  http://www.python-camelot.com/cpd.html
 
  - build an auto-update  monitoring service around it that
 was integrated
  with
  setuptools and buildbot
 
 
 
 
 
 http://www.conceptive.be/downloads/camelot/doc/sphinx/build/advanced/deployment.html
 
  we serve more than 100 sites with this combination.
 updating the app is
  just
  pressing the buildbot button which will run unittests,
 build a package and
  push
  it to the end users.
 
  Regards,
 
  Erik
 
  On Thu, Jun 16, 2011 at 7:13 PM, James Polk
 jpolk5...@yahoo.com wrote:
 
 
  Apologies if this is too off-topic,but I'd like to
 propose a
  discussion
  of
  how-to's and where-fore's regarding distributing python
 modules to a
  user-base.
 
  Recently, I've been using Mark Hammond's excellent pywin32
 packages,
  along with NumPy and PyOpenGL,etc. I have a user-base of
 

Re: [PyQt] Inter-office distribution/installation of packages/modules

2011-06-28 Thread Erik Janssens
that's interesting, how do you handle the auto update with py2exe ?
which part of the app gets updated ?

On Fri, Jun 17, 2011 at 12:58 AM, Demetrius Cassidy
dcassid...@gmail.com wrote:
 We have an app which must be redistributed to multiple groups, with 40+
 users and py2exe is the reason we are able to do this. Gui2exe makes the
 building simpler.

 If you need to debug, you won't be running the bundled app, so I don't see
 why you would need to so much other than making sure it runs when bundled.

 If your packages are making assumptions on how your enviroment is set up,
 IMO I think that is wrong and will only lead to problems down the road.

 And the last thing, is that we have an auto updater, so new releases only
 require a rebuild and push to the sever.

 On Jun 16, 2011 2:58 PM, Erik Janssens erik.janss...@conceptive.be
 wrote:
 Hi,

 I would not agree with using Py2exe, while the idea is nice, we have had
 many
 issues with it, basically for 2 reasons :

 - it's dependency analysis, in combination with automatic updates : if
 your
 update
 uses a part of a package that was not used in the original package, you
 need to
 redeploy everything, instead of just the part of your app that you update

 - it changes the 'environment' your app runs in (eg sys.path), while it is
 possible
 to work around it in your app, you need to make sure that none of the
 packages
 you use make certain assumption on the environment

 This combination means that in order to properly test your application,
 you
 need
 to continuously rebuild your app with py2exe, and run it. notice some
 error,
 fix it,
 rebuild, etc. This takes far too much time.

 So what we did was :

 - build a custom python distro with all 'binary' packages included we need
 that
 does not depend on registry settings and does not conflict with
 potentially other
 pythons installed on the machine, so we can develop, test and deploy in
 exactly the same environment

 http://www.python-camelot.com/cpd.html

 - build an auto-update  monitoring service around it that was integrated
 with
 setuptools and buildbot



 http://www.conceptive.be/downloads/camelot/doc/sphinx/build/advanced/deployment.html

 we serve more than 100 sites with this combination. updating the app is
 just
 pressing the buildbot button which will run unittests, build a package and
 push
 it to the end users.

 Regards,

 Erik

 On Thu, Jun 16, 2011 at 7:13 PM, James Polk jpolk5...@yahoo.com wrote:


 Apologies if this is too off-topic,but I'd like to propose a
 discussion
 of
 how-to's and where-fore's regarding distributing python modules to a
 user-base.

 Recently, I've been using Mark Hammond's excellent pywin32 packages,
 along with NumPy and PyOpenGL,etc. I have a user-base of approx 40 or so,
 who will need these packages added to their base Python install.

 Rather than visit 40 separate desktops, I used pip (pip freeze) to get
 a
 short list of packages outside the base install, and wrote an app that
 each
 user can run to find what's missing, and initiate the appropriate
 install,etc.
 Then I realized that pip itself was a 3rd party package!..DOh!

 I can fall back and use help('modules') to generate a new list, but it
 lists
 *everything* in the install,...usable but not as succinct, for pywin32
 for
 example,
 it lists about a dozen things with a form of win32 in them,...and
 doesn't
 appear
 to return the real package name that is associated with the binary
 installation file.

 Surely these issues are fairly common phenomena in many workplaces,etc...
 I'm wondering if anybody out there has any knowledge, tips, or
 experiences
 regarding this issue that they can share.

 I've found moduleFinder, and various ideas about searching sys.path,
 pkgutils, but nothing else that seems like a long term viable and/or
 elegant solution.

 Thoughts anyone?

 Thanks,
 -Jim



 ___
 PyQt mailing list PyQt@riverbankcomputing.com
 http://www.riverbankcomputing.com/mailman/listinfo/pyqt


___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt


Re: [PyQt] Inter-office distribution/installation of packages/modules

2011-06-16 Thread Demetrius Cassidy
Have you tried using py2exe? We have an application written in python with
many dependencies, and without py2exe we would have to create an installer
to manually install python and all the dependencies...And we initially did
that, but that was far more problematic in the end than deploying an .exe
(problems with multiple python installations, upgrading packages, upgrading
Python!, etc.)

Use py2exe along with gui2exe (makes deploying much simpler). It's not
perfect, and the project seems to have stalled, but it works. There is also
PyInstaller, but I have never gotten it to work with twisted and distutils.
It would also balloon our app because it started including every system32
dll it could find that was used!

On Thu, Jun 16, 2011 at 1:13 PM, James Polk jpolk5...@yahoo.com wrote:


 Apologies if this is too off-topic,but I'd like to propose a discussion
 of
 how-to's and where-fore's regarding distributing python modules to a
 user-base.

 Recently, I've been using Mark Hammond's excellent pywin32 packages,
 along with NumPy and PyOpenGL,etc.  I have a user-base of approx 40 or so,
 who will need these packages added to their base Python install.

 Rather than visit 40 separate desktops, I used pip  (pip freeze) to get a
 short list of packages outside the base install, and wrote an app that each
 user can run to find what's missing, and initiate the appropriate
 install,etc.
 Then I realized that pip itself was a 3rd party package!..DOh!

 I can fall back and use help('modules') to generate a new list, but it
 lists
 *everything* in the install,...usable but not as succinct, for pywin32 for
 example,
 it lists about a dozen things with a form of win32 in them,...and doesn't
 appear
 to return the real package name that is associated with the binary
 installation file.

 Surely these issues are fairly common phenomena in many workplaces,etc...
 I'm wondering if anybody out there has any knowledge, tips, or experiences
 regarding this issue that they can share.

 I've found moduleFinder, and various ideas about searching sys.path,
 pkgutils, but nothing else that seems like a long term viable and/or
 elegant solution.

 Thoughts anyone?

 Thanks,
 -Jim



 ___
 PyQt mailing listPyQt@riverbankcomputing.com
 http://www.riverbankcomputing.com/mailman/listinfo/pyqt

___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Re: [PyQt] Inter-office distribution/installation of packages/modules

2011-06-16 Thread Arnold Krille
On Thursday 16 June 2011 19:13:10 James Polk wrote:
 Apologies if this is too off-topic,but I'd like to propose a discussion
 of how-to's and where-fore's regarding distributing python modules to a
 user-base.
 
 Recently, I've been using Mark Hammond's excellent pywin32 packages,
 along with NumPy and PyOpenGL,etc.  I have a user-base of approx 40 or so,
 who will need these packages added to their base Python install.
 
 Rather than visit 40 separate desktops, I used pip  (pip freeze) to get a
 short list of packages outside the base install, and wrote an app that each
 user can run to find what's missing, and initiate the appropriate
 install,etc. Then I realized that pip itself was a 3rd party
 package!..DOh!
 
 I can fall back and use help('modules') to generate a new list, but it
 lists *everything* in the install,...usable but not as succinct, for
 pywin32 for example, it lists about a dozen things with a form of win32
 in them,...and doesn't appear to return the real package name that is
 associated with the binary installation file.
 
 Surely these issues are fairly common phenomena in many workplaces,etc...
 I'm wondering if anybody out there has any knowledge, tips, or experiences
 regarding this issue that they can share.
 
 I've found moduleFinder, and various ideas about searching sys.path,
 pkgutils, but nothing else that seems like a long term viable and/or
 elegant solution.

I don't really get your question? Why are you so serious about third-party 
applications/modules? Do you suspect licensing problems?
If that is the case: As long as the app/modules you develop stays within the 
company that pays you generally, its not publishing the stuff. So when you 
wrote that app during your day-job for your employer and want to distribute it 
to all the other employers, neither are you affected by the licenses of the 
third-party modules, nor do you have to use a certain license for your code. 
Which actually belongs to your employer, thats why using it inside the firm is 
no publication...

Disclaimer: I am not a lawyer.

Have fun,

Arnold


signature.asc
Description: This is a digitally signed message part.
___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Re: [PyQt] Inter-office distribution/installation of packages/modules

2011-06-16 Thread Mike Ramirez
On Thursday 16 June 2011 10:13:10 James Polk wrote:
 Apologies if this is too off-topic,but I'd like to propose a discussion
 of how-to's and where-fore's regarding distributing python modules to a
 user-base.
 
 Recently, I've been using Mark Hammond's excellent pywin32 packages,
 along with NumPy and PyOpenGL,etc.  I have a user-base of approx 40 or so,
 who will need these packages added to their base Python install.
 
 Rather than visit 40 separate desktops, I used pip  (pip freeze) to get a
 short list of packages outside the base install, and wrote an app that each
 user can run to find what's missing, and initiate the appropriate
 install,etc. Then I realized that pip itself was a 3rd party
 package!..DOh!
 
 I can fall back and use help('modules') to generate a new list, but it
 lists *everything* in the install,...usable but not as succinct, for
 pywin32 for example, it lists about a dozen things with a form of win32
 in them,...and doesn't appear to return the real package name that is
 associated with the binary installation file.
 
 Surely these issues are fairly common phenomena in many workplaces,etc...
 I'm wondering if anybody out there has any knowledge, tips, or experiences
 regarding this issue that they can share.
 
 I've found moduleFinder, and various ideas about searching sys.path,
 pkgutils, but nothing else that seems like a long term viable and/or elegant
 solution.
 
 Thoughts anyone?
 
 Thanks,
 -Jim

Have your tried easy_install ?  similar to pip, but is part of the 
setuputils/distribute packaging system.  But I would second: use py2exe you 
can bundle a copy of everything into a single bin for the users.  

py2exe is a Python Distutils extension which converts Python scripts into 
executable Windows programs, able to run without requiring a Python 
installation. -- http://py2exe.org


Mike
___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt


Re: [PyQt] Inter-office distribution/installation of packages/modules

2011-06-16 Thread Erik Janssens
Hi,

I would not agree with using Py2exe, while the idea is nice, we have had
many
issues with it, basically for 2 reasons :

- it's dependency analysis, in combination with automatic updates : if your
update
  uses a part of a package that was not used in the original package, you
need to
  redeploy everything, instead of just the part of your app that you update

- it changes the 'environment' your app runs in (eg sys.path), while it is
possible
  to work around it in your app, you need to make sure that none of the
packages
  you use make certain assumption on the environment

This combination means that in order to properly test your application, you
need
to continuously rebuild your app with py2exe, and run it. notice some error,
fix it,
rebuild, etc.  This takes far too much time.

So what we did was :

- build a custom python distro with all 'binary' packages included we need
that
  does not depend on registry settings and does not conflict with
potentially other
  pythons installed on the machine, so we can develop, test and deploy in
  exactly the same environment

  http://www.python-camelot.com/cpd.html

- build an auto-update  monitoring service around it that was integrated
with
  setuptools and buildbot


http://www.conceptive.be/downloads/camelot/doc/sphinx/build/advanced/deployment.html

we serve more than 100 sites with this combination.  updating the app is
just
pressing the buildbot button which will run unittests, build a package and
push
it to the end users.

Regards,

Erik

On Thu, Jun 16, 2011 at 7:13 PM, James Polk jpolk5...@yahoo.com wrote:


 Apologies if this is too off-topic,but I'd like to propose a discussion
 of
 how-to's and where-fore's regarding distributing python modules to a
 user-base.

 Recently, I've been using Mark Hammond's excellent pywin32 packages,
 along with NumPy and PyOpenGL,etc.  I have a user-base of approx 40 or so,
 who will need these packages added to their base Python install.

 Rather than visit 40 separate desktops, I used pip  (pip freeze) to get a
 short list of packages outside the base install, and wrote an app that each
 user can run to find what's missing, and initiate the appropriate
 install,etc.
 Then I realized that pip itself was a 3rd party package!..DOh!

 I can fall back and use help('modules') to generate a new list, but it
 lists
 *everything* in the install,...usable but not as succinct, for pywin32 for
 example,
 it lists about a dozen things with a form of win32 in them,...and doesn't
 appear
 to return the real package name that is associated with the binary
 installation file.

 Surely these issues are fairly common phenomena in many workplaces,etc...
 I'm wondering if anybody out there has any knowledge, tips, or experiences
 regarding this issue that they can share.

 I've found moduleFinder, and various ideas about searching sys.path,
 pkgutils, but nothing else that seems like a long term viable and/or
 elegant solution.

 Thoughts anyone?

 Thanks,
 -Jim



 ___
 PyQt mailing listPyQt@riverbankcomputing.com
 http://www.riverbankcomputing.com/mailman/listinfo/pyqt

___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt