Re: Generating custom Windows installers

2012-04-06 Thread Cesar Covarrubias
I'm still getting my feet wet on the Windows side of things with Python, so
I apologize for the noobish question.

If i am reading the create_link.py example correctly, that is created when
the application itself is invoked, not during installation. Is that
correct? If it is, how would I be able to invoke that when generating the
MSI so that the installer creates the shortcut?

Cesar

On Thu, Apr 5, 2012 at 8:42 PM, Mark Hammond skippy.hamm...@gmail.comwrote:

 Seeing you are relying on win32com, you might as well add the links
 directly rather than via the intermediate WScript.shell object.  Look in
 win32comext\shell\demos\**create_link.py for an example of how to create
 shortcuts directly.

 HTH,

 Mark

 On 6/04/2012 5:23 AM, cesar.covarrub...@gmail.com wrote:

 Hello,

 I am working on creating an installer of a Python 3.2 application that we
 programmed. The end goal is to create an installer in which we can specify
 the install path, and create shortcuts in the Start Menu and Desktop.
 Ideally, we would like to give the users the option to create the Desktop
 or Start Menu shortcuts.

 I was able to create a .msi file with the setup.py and install.py files
 below. This allowed me to specify the custom default path but not create
 the shortcut in the Start Menu.

 Can anyone help me figure out what I'm missing?


 setup.py
 

 from cx_Freeze import setup, Executable
 import sys

 productName = ProductName
 if 'bdist_msi' in sys.argv:
 sys.argv += ['--initial-target-dir', 'C:\InstallDir\\' + productName]
 sys.argv += ['--install-script', 'install.py']

 exe = Executable(
   script=main.py,
   base=Win32GUI,
   targetName=Product.exe
  )
 setup(
   name=Product.exe,
   version=1.0,
   author=Me,
   description=Copyright 2012,
   executables=[exe],
   scripts=[
'install.py'
]
   )
 --**---

 install.py
 --
 import os
 import sys
 import win32com.client as w32client

 shortcut_group_name = Start Menu Dir
 shortcut_name = Product Name
 shortcut_target = http://www.microsoft.com;

 sh = w32client.Dispatch(WScript.**Shell)
 p = sh.SpecialFolders(**AllUsersPrograms)
 assert(os.path.isdir(p))
 p = os.path.join(p, shortcut_group_name)
 if (not os.path.isdir(p)):
 os.makedirs(p)
 lnk = sh.CreateShortcut(os.path.**join(p, shortcut_name + .lnk))
 lnk.TargetPath = shortcut_target
 lnk.Save()







-- 
Very Respectfully,
Cesar Covarrubias
-- 
http://mail.python.org/mailman/listinfo/python-list


Generating custom Windows installers

2012-04-05 Thread cesar . covarrubias
Hello,

I am working on creating an installer of a Python 3.2 application that we 
programmed. The end goal is to create an installer in which we can specify the 
install path, and create shortcuts in the Start Menu and Desktop. Ideally, we 
would like to give the users the option to create the Desktop or Start Menu 
shortcuts. 

I was able to create a .msi file with the setup.py and install.py files below. 
This allowed me to specify the custom default path but not create the shortcut 
in the Start Menu. 

Can anyone help me figure out what I'm missing?


setup.py


from cx_Freeze import setup, Executable
import sys

productName = ProductName
if 'bdist_msi' in sys.argv:
sys.argv += ['--initial-target-dir', 'C:\InstallDir\\' + productName]
sys.argv += ['--install-script', 'install.py']

exe = Executable(
  script=main.py,
  base=Win32GUI,
  targetName=Product.exe
 )
setup(
  name=Product.exe,
  version=1.0,
  author=Me,
  description=Copyright 2012,
  executables=[exe],
  scripts=[
   'install.py'
   ]
  )
-

install.py
--
import os
import sys
import win32com.client as w32client

shortcut_group_name = Start Menu Dir
shortcut_name = Product Name
shortcut_target = http://www.microsoft.com;

sh = w32client.Dispatch(WScript.Shell)
p = sh.SpecialFolders(AllUsersPrograms)
assert(os.path.isdir(p))
p = os.path.join(p, shortcut_group_name)
if (not os.path.isdir(p)):
os.makedirs(p)
lnk = sh.CreateShortcut(os.path.join(p, shortcut_name + .lnk))
lnk.TargetPath = shortcut_target
lnk.Save()


-- 
http://mail.python.org/mailman/listinfo/python-list