Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在64位CentOS 6上编译和运行32位Python?_Python_Linux_Compilation_32bit 64bit - Fatal编程技术网

如何在64位CentOS 6上编译和运行32位Python?

如何在64位CentOS 6上编译和运行32位Python?,python,linux,compilation,32bit-64bit,Python,Linux,Compilation,32bit 64bit,我需要在64位CentOS中运行32位Python 背景 我有一个PCI-GPIB接口卡。它的司机都来自中国。它在驱动程序页面中显示: NI-488.2版本2.9支持64位内核。驱动程序当前只能从32位应用程序中使用 使用Python中的驱动程序 我使用wrapper来使用驱动程序,如下所示: import visa 但是,我得到以下错误: OSError: /usr/local/vxipnp/linux/bin/libvisa.so.7: wrong ELF class: ELFCLASS3

我需要在64位CentOS中运行32位Python

背景 我有一个PCI-GPIB接口卡。它的司机都来自中国。它在驱动程序页面中显示:

NI-488.2版本2.9支持64位内核。驱动程序当前只能从32位应用程序中使用

使用Python中的驱动程序 我使用wrapper来使用驱动程序,如下所示:

import visa
但是,我得到以下错误:

OSError: /usr/local/vxipnp/linux/bin/libvisa.so.7: wrong ELF class: ELFCLASS32
问题: 国家仪器公司表示,他们的驱动程序支持64位内核
但它只能在32位应用程序中使用。我的Python安装(我自己编译)是64位的


如何在64位CentOS 6中编译32位Python?以下是如何在CentOS 6.10上构建32位Python 2.7.15:

安装所需的软件包:

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
构建32位Python:

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 install

例如,如果可以从
~/tmp/python-3.7.1
运行python,那么以下几点对我很有用:

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
make
当然,您需要首先安装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

(与其他答案相比,添加了libffi-devel)

您的问题的完整指南:这有点接近。虽然我认为有很多错误。您在~/tmp中获得tarball,但随后尝试在~/Archive中访问它。然后创建一个/opt/Python-2.7.7目录,但下一行的前缀--use/E/.sbx/Python-2.7.7。然后LD_RUN_路径行显示use/opt/Python-2.7.7/lib,但该文件夹中没有任何内容。@RDT2感谢您指出,修复了
~/tmp
的打字错误<代码>LD_RUN_PATH将为空,直到您运行
make install