Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way to specify the build directory for py2exe

Tags:

python

py2exe

I can set the final dist directory of py2exe using the command line:

python setup.py py2exe -d "my/dist/dir"

but I can't seem to set the file to use for the interim build directory. I've taken a brief look at the source, but unless I am missing something there doesn't appear to be any way to do it.

like image 560
Casey Avatar asked Apr 27 '11 23:04

Casey


2 Answers

Any option that you can set on the command line you can set either through a setup.cfg file or in your setup.py file.

-d is a shortcut for --dist-dir which you can add to the py2xe dict in the dictionary passed to the options keyword param of setup as 'dist_dir':

from distutils.core import setup
import py2exe

# equivalent command line with options is:
# python setup.py py2exe --compressed --bundle-files=2 --dist-dir="my/dist/dir" --dll-excludes="w9xpopen.exe"
options = {'py2exe': {
           'compressed':1,  
           'bundle_files': 2, 
           'dist_dir': "my/dist/dir"
           'dll_excludes': ['w9xpopen.exe']
           }}
setup(console=['myscript.py'], options=options)

You could also put setup.cfg next to your setup.py file:

[py2exe]
compressed=1
bundle_files=2 
dist_dir=my/dist/dir
dll_excludes=w9xpopen.exe

The build directory (--build-base) is an option of the build command so you can add it to one of the config files (or the setup.py) as:

[build]
build_base=my/build/dir
like image 134
lambacck Avatar answered Oct 31 '22 21:10

lambacck


To clarify on lambacck's answer, this works on the latest vanilla py2exe:

options = {'build': {'build_base': 'my/build/dir'},
           'py2exe': {
           'compressed':1,  
           'bundle_files': 2, 
           'dist_dir': "my/dist/dir"
           'dll_excludes': ['w9xpopen.exe']
          }}
like image 28
vostok4 Avatar answered Oct 31 '22 21:10

vostok4