In article
<calzqqjaqnpkcufqbzuudsttcjcubxv2py7peiafuruj5ejh...@mail.gmail.com>,
Nat Echols <[email protected]> wrote:
> Hi--
>
> We are building the Python framework and packaging it for distribution
> along with a large volume of other scripts and shared libraries. One
> step involves running shutil.copy to move the common 'bin' directory
> to a temporary directory. This fails when it gets to the symlinks
> generated by the 'installunixtools' option in the Mac-specific
> makefile:
>
> "/net/clover/scratch1/builder/build_cctbx_plus/base/Python.framework/Versions/
> 2.7/lib/python2.7/shutil.py",
> line 82, in copyfile
> with open(src, 'rb') as fsrc:
> IOError: [Errno 2] No such file or directory: 'bin/2to3-2'
>
> Indeed, the 'bin' directory contains a number of such broken symlinks
> to non-existent files in Python.framework/Versions/2.7/bin, basically
> all of them the versioned commands. I looked at the Makefile code and
> it is clearly linking each of these explicitly, but the framework
> build never creates them in the first place. Are we missing a step in
> our building and installation, or is this just a bug?
Framework builds can be confusing. Without seeing exactly what
"configure" options and "make" commands you are using, I can only
speculate. But, normally, the versioned symlinks in the framework bin
directory for things like 2to3-2 are created by the
"install_versionedtools" target of the Mac/Makefile and that should be
part of the dependency chain for the main Makefile "install" target when
configured with --enable-framework. The "-2" symlinks are new in 2.7.3
(Issue #12627: PEP 394 support).
FWIW, here's an example of a framework build and install that uses
non-standard locations. You likely wouldn't need all of the options.
export INSTALL_ROOT=/path/to/root
./configure \
--enable-universalsdk=$(xcodebuild -version -sdk macosx Path) \
--with-universal-archs=intel
--enable-framework="${INSTALL_ROOT}"/Library/Frameworks \
--with-framework-name=Pytest \
CC=clang \
MACOSX_DEPLOYMENT_TARGET=10.8
make && make install
That should build and install into Applications, Library/Frameworks, and
bin directories under ${INSTALL_ROOT}.
--
Ned Deily,
[email protected]
_______________________________________________
Pythonmac-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG