Necesito ejecutar Python de 32 bits en CentOS de 64 bits.
Tengo una tarjeta de interfaz PCI-GPIB. Sus drivers son de National Instruments . Dice en la página de controladores:
NI-488.2 versión 2.9 admite núcleos de 64 bits. Actualmente, el controlador solo se puede usar desde aplicaciones de 32 bits.
Uso el envoltorio PyVISA para usar el controlador, así:
import visaSin embargo, me sale el siguiente error:
OSError: /usr/local/vxipnp/linux/bin/libvisa.so.7: wrong ELF class: ELFCLASS32 National Instruments dice que su controlador admite núcleos de 64 bits. bueno
Pero solo se puede usar desde aplicaciones de 32 bits. mal Mi instalación de Python (que compilé yo mismo) es de 64 bits.
Así es como construí Python 2.7.15 de 32 bits en CentOS 6.10:
Instale los paquetes necesarios:
sudo yum install libgcc.i686 glibc-devel.i686 glibc.i686 zlib-devel.i686\ readline-devel.i686 gdbm-devel.i686 openssl-devel.i686 ncurses-devel.i686\ tcl-devel.i686 db4-devel.i686 bzip2-devel.i686Construir Python de 32 bits:
mkdir ${HOME}/{Archive,Build} wget http://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz -O ${HOME}/Archive/Python-2.7.15.tgz tar xzvf ~/Archive/Python-2.7.15.tgz -C ${HOME}/Build cd ${HOME}/Build/Python-2.7.15 [sudo] mkdir -p /opt/Python-2.7.15 CFLAGS=-m32 LDFLAGS=-m32 ./configure --prefix=/E/.sbx/Python-2.7.15 --enable-shared LD_RUN_PATH=/opt/Python-2.7.15/lib make make installSi está bien ejecutar python desde, por ejemplo, ~/tmp/Python-3.7.1 , lo siguiente funcionó para mí:
mkdir ~/tmp cd ~/tmp wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz tar xzf Python-3.7.1.tgz cd Python-3.7.1 CFLAGS=-m32 LDFLAGS=-m32 ./configure makeY, por supuesto, primero deberá instalar las bibliotecas y el compilador para i686:
sudo yum install libgcc.i686 glibc-devel.i686 glibc.i686 zlib-devel.i686 readline-devel.i686 gdbm-devel.i686 openssl-devel.i686 ncurses-devel.i686 tcl-devel.i686 db4-devel.i686 bzip2-devel.i686 libffi-devel.i686(se agregó libffi-devel en comparación con otra respuesta)