GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing mail.python.org — [Python-Dev] PEP 370 extras [Python-Dev] PEP 370 extrasChristian Heimes lists at cheimes.deFri May 9 00:05:19 CEST 2008
I'm working on some extra cool and useful additions to PEP 370. It's
going to make compilation and usage of custom libraries very easy. Sit
back and watch the slide show. :)
The site module has two new options. The --user-base option prints the
path to the user base directory to stdout.
$ ~/dev/python/trunk/python -m site --user-base
/home/heimes/.local
I install libxslt-1.1.19 into my ~/.local directory.
libxslt-1.1.19$ ./configure --prefix `~/dev/python/trunk/python -m site
--user-base`
libxslt-1.1.19$ make
libxslt-1.1.19$ make install
...
test -z "/home/heimes/.local/lib" || mkdir -p -- "/home/heimes/.local/lib"
/bin/bash ../libtool --mode=install /usr/bin/install -c 'libxslt.la'
'/home/heimes/.local/lib/libxslt.la'
/usr/bin/install -c .libs/libxslt.so.1.1.19
/home/heimes/.local/lib/libxslt.so.1.1.19
Now I compile lxml against the libraries and include directories in
~/.local. But first I have to add ~/.local/bin to PATH so lxml picks up
the right xslt-config binary.
$ export PATH=~/.local/bin:$PATH
lxml-1.3.6$ ~/dev/python/trunk/python setup.py build_ext --user
Building lxml version 1.3.6-8122
setupinfo.py:137: DeprecationWarning: os.popen3 is deprecated. Use the
subprocess module.
wf, rf, ef = os.popen3(cmd)
/home/heimes/dev/python/trunk/Lib/distutils/dist.py:263: UserWarning:
Unknown distribution option: 'zip_safe'
warnings.warn(msg)
running build_ext
building 'lxml.etree' extension
creating build
creating build/temp.linux-i686-2.6-pydebug
creating build/temp.linux-i686-2.6-pydebug/src
creating build/temp.linux-i686-2.6-pydebug/src/lxml
gcc -pthread -fno-strict-aliasing -g -Wall -Wstrict-prototypes -fPIC
-I/home/heimes/.local/include -I/usr/include/libxml2
-I/home/heimes/dev/python/trunk/Include -I/home/heimes/dev/python/trunk
-I/home/heimes/.local/include -c src/lxml/etree.c -o
build/temp.linux-i686-2.6-pydebug/src/lxml/etree.o -w
creating build/lib.linux-i686-2.6-pydebug
creating build/lib.linux-i686-2.6-pydebug/lxml
gcc -pthread -shared build/temp.linux-i686-2.6-pydebug/src/lxml/etree.o
-L/home/heimes/.local/lib -L/home/heimes/.local/lib
-Wl,-R/home/heimes/.local/lib -lxslt -lexslt -lxml2 -lz -lm -o
build/lib.linux-i686-2.6-pydebug/lxml/etree.so
building 'lxml.objectify' extension
gcc -pthread -fno-strict-aliasing -g -Wall -Wstrict-prototypes -fPIC
-I/home/heimes/.local/include -I/usr/include/libxml2
-I/home/heimes/dev/python/trunk/Include -I/home/heimes/dev/python/trunk
-I/home/heimes/.local/include -c src/lxml/objectify.c -o
build/temp.linux-i686-2.6-pydebug/src/lxml/objectify.o -w
gcc -pthread -shared
build/temp.linux-i686-2.6-pydebug/src/lxml/objectify.o
-L/home/heimes/.local/lib -L/home/heimes/.local/lib
-Wl,-R/home/heimes/.local/lib -lxslt -lexslt -lxml2 -lz -lm -o
build/lib.linux-i686-2.6-pydebug/lxml/objectify.so
building 'lxml.pyclasslookup' extension
gcc -pthread -fno-strict-aliasing -g -Wall -Wstrict-prototypes -fPIC
-I/home/heimes/.local/include -I/usr/include/libxml2
-I/home/heimes/dev/python/trunk/Include -I/home/heimes/dev/python/trunk
-I/home/heimes/.local/include -c src/lxml/pyclasslookup.c -o
build/temp.linux-i686-2.6-pydebug/src/lxml/pyclasslookup.o -w
gcc -pthread -shared
build/temp.linux-i686-2.6-pydebug/src/lxml/pyclasslookup.o
-L/home/heimes/.local/lib -L/home/heimes/.local/lib
-Wl,-R/home/heimes/.local/lib -lxslt -lexslt -lxml2 -lz -lm -o
build/lib.linux-i686-2.6-pydebug/lxml/pyclasslookup.so
lxml-1.3.6$ ~/dev/python/trunk/python setup.py install --user
...
As you can see etree.so is going to load my local libxslt library
instead of the system one.
$ ldd /home/heimes/.local/lib/python2.6/site-packages/lxml/etree.so
linux-gate.so.1 => (0xb7fc5000)
libxslt.so.1 => /home/heimes/.local/lib/libxslt.so.1 (0xb7e89000)
libexslt.so.0 => /home/heimes/.local/lib/libexslt.so.0 (0xb7e78000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7d3d000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7d28000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7d03000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7ceb000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7b9c000)
libgcrypt.so.11 => /lib/libgcrypt.so.11 (0xb7b4e000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7b4a000)
/lib/ld-linux.so.2 (0xb7fc6000)
libgpg-error.so.0 => /lib/libgpg-error.so.0 (0xb7b46000)
Comments? :)
Christian
More information about the Python-Dev mailing list |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |