A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2008-May/079261.html below:

[Python-Dev] PEP 370 extras

[Python-Dev] PEP 370 extrasChristian Heimes lists at cheimes.de
Fri 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

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4