[Python-Dev] Relocating Python (original) (raw)
Casey Duncan casey at pandora.com
Tue Jul 29 21:54:31 CEST 2008
- Previous message: [Python-Dev] Relocating Python
- Next message: [Python-Dev] urllib.quote and unquote - Unicode issues
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Jul 29, 2008, at 12:56 PM, Lupusoru, Razvan A wrote:
Hello,
I am trying to get Python 2.5.2 working for an IA32 system. The compilation is done on an Ubuntu 8.04.1 dev system. I am using a custom gcc and ld specific to the IA32 system. This is my makefile: ############################## BUILDDEST = /i686-custom-kernel CC = $(BUILDDEST)/bin/i686-linux-gcc CPP = $(CC) –E CXX = $(BUILDDEST)/bin/i686-linux-g++ LD = $(BUILDDEST)/bin/i686-linux-ld PYTHONINSTALLPATH = $(BUILDDEST)/usr Export all: tar xzfv Python-2.5.2.tgz ./Python-2.5.2/configure –prefix=$ {PYTHONINSTALLPATH} –host=i686-linux –enable-shared cd Python-2.5.2 make make install ############################## Everything compiles correctly. I then copy the contents of the $BUILDDEST and put them on the hard drive for my IA32 system. I basically use the contents of $BUILDDEST as the root directory on my IA32 system. Python seems to run correctly when I run it, but when I do things like “import pysqlite”, it cannot find it. Is there anything special I have to do to relocate my python (since on my IA32 system it runs from /usr/bin/python but it originally gets created in ${BUILDDEST}/usr/bin/python)?
You'll want to pass configure the prefix where python will ultimately
be installed, otherwise the paths used during make won't make sense
on the destination system. That said, pysqlite is not part of the
stdlib, so your actual problem may have more to do with how you've
installed it then anything. When you run python once relocated, what
does os.path contain?
What we do for packaging, is run 'configure' normally and then 'make',
then override some make variables for 'make install' to temporarily
install it in a different place for package staging. It looks
something like this:
./configure &&
make &&
make BINDIR=$(shell pwd)/path/to/tmp/bin
CONFINCLUDEDIR=$(shell pwd)/path/to/tmp/include
INCLUDEDIR=$(shell pwd)/path/to/tmp/include
LIBDIR=$(shell pwd)/path/to/tmp/lib
MANDIR=$(shell pwd)/path/to/tmp/man
SCRIPTDIR=$(shell pwd)/path/to/tmp/lib
install
Then when the package is deployed, the files are actually installed
under the standard 'configure' prefix (/usr/local I think).
hth,
-Casey
- Previous message: [Python-Dev] Relocating Python
- Next message: [Python-Dev] urllib.quote and unquote - Unicode issues
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]