Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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
Python Pip/easy\u安装是否忽略SciPy安装中的ARCHFLAGS?_Python_Gcc_Architecture_Scipy_Pip - Fatal编程技术网

Python Pip/easy\u安装是否忽略SciPy安装中的ARCHFLAGS?

Python Pip/easy\u安装是否忽略SciPy安装中的ARCHFLAGS?,python,gcc,architecture,scipy,pip,Python,Gcc,Architecture,Scipy,Pip,我正在尝试为32位和64位体系结构编译SciPy,因为使用该库的一些应用程序只是一个arch或另一个arch,这是根据一位专家的建议进行的。大约两个月前,这个命令在一个类似的版本中对我有效,但现在看来,一些编译的共享库只针对x86_64: sudo ARCHFLAGS=“-arch i386-arch x86_64”pip安装scipy 我已经尝试过这个命令的几个版本,包括在sudo之前设置环境变量,包括在FFlags中设置-m32-m64,使用OSX命令行工具,完整的Xcode安装,使用cla

我正在尝试为32位和64位体系结构编译SciPy,因为使用该库的一些应用程序只是一个arch或另一个arch,这是根据一位专家的建议进行的。大约两个月前,这个命令在一个类似的版本中对我有效,但现在看来,一些编译的共享库只针对x86_64:

sudo ARCHFLAGS=“-arch i386-arch x86_64”pip安装scipy

我已经尝试过这个命令的几个版本,包括在
sudo
之前设置环境变量,包括在FFlags中设置
-m32-m64
,使用OSX命令行工具,完整的Xcode安装,使用clang而不是OSX随附的LLVM,轻松安装而不是pip,甚至单独配置,等等,但我似乎无法让它发挥作用。奇怪的是,有些.so正在使用这两种体系结构进行构建,但有些不是:

dhcp-10-249-71-202:~ kastman$ file /Library/Python/2.7/site-packages/scipy/optimize/*.so
/Library/Python/2.7/site-packages/scipy/optimize/_cobyla.so:   Mach-O 64-bit bundle x86_64
/Library/Python/2.7/site-packages/scipy/optimize/_lbfgsb.so:   Mach-O 64-bit bundle x86_64
/Library/Python/2.7/site-packages/scipy/optimize/_minpack.so:  Mach-O 64-bit bundle x86_64
/Library/Python/2.7/site-packages/scipy/optimize/_nnls.so:     Mach-O 64-bit bundle x86_64
/Library/Python/2.7/site-packages/scipy/optimize/_slsqp.so:    Mach-O 64-bit bundle x86_64
/Library/Python/2.7/site-packages/scipy/optimize/_zeros.so:    Mach-O universal binary with 2 architectures
/Library/Python/2.7/site-packages/scipy/optimize/_zeros.so (for architecture i386): Mach-O bundle i386
/Library/Python/2.7/site-packages/scipy/optimize/_zeros.so (for architecture x86_64):   Mach-O 64-bit bundle x86_64
/Library/Python/2.7/site-packages/scipy/optimize/minpack2.so:  Mach-O 64-bit bundle x86_64
/Library/Python/2.7/site-packages/scipy/optimize/moduleTNC.so: Mach-O universal binary with 2 architectures
/Library/Python/2.7/site-packages/scipy/optimize/moduleTNC.so (for architecture i386):  Mach-O bundle i386
/Library/Python/2.7/site-packages/scipy/optimize/moduleTNC.so (for architecture x86_64):    Mach-O 64-bit bundle x86_64
查看make日志,似乎成功地为似乎正常工作的库和不正常的库传递了args:

# Minpack doesn't build fat binaries
/usr/local/bin/gfortran -Wall -Wall -undefined dynamic_lookup -bundle build/temp.macosx-10.7-intel-2.7/build/src.macosx-10.7-intel-2.7/scipy/optimize/minpack2/minpack2module.o build/temp.macosx-10.7-intel-2.7/build/src.macosx-10.7-intel-2.7/fortranobject.o build/temp.macosx-10.7-intel-2.7/scipy/optimize/minpack2/dcsrch.o build/temp.macosx-10.7-intel-2.7/scipy/optimize/minpack2/dcstep.o -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin11/4.6.2 -Lbuild/temp.macosx-10.7-intel-2.7 -lgfortran -o build/lib.macosx-10.7-intel-2.7/scipy/optimize/minpack2.so
building 'scipy.optimize._slsqp' extension
compiling C sources
C compiler: clang -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe

#... but moduleTNC does.
llvm-gcc-4.2 -Wl,-F. -bundle -undefined dynamic_lookup -Wl,-F. -arch i386 -arch x86_64 build/temp.macosx-10.7-intel-2.7/scipy/optimize/tnc/moduleTNC.o build/temp.macosx-10.7-intel-2.7/scipy/optimize/tnc/tnc.o -Lbuild/temp.macosx-10.7-intel-2.7 -o build/lib.macosx-10.7-intel-2.7/scipy/optimize/moduleTNC.so
building 'scipy.optimize._cobyla' extension
compiling C sources
C compiler: clang -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe
有可能是我使用的gfortran编译器不同吗?我使用了
brew安装gfortran
,根据SciPy文档,这应该是好的。我认为重要的一行应该是C编译器:clang行,它看起来几乎相同,包括两个-arch

我尝试过的最后一个最详细的构建是:

sudo env ARCHFLAGS=“-arch i386-arch x86_64”arch=“i386 x86_64”CC=“clang”CXX=“clang”FFLAGS=“-ff2c-m32-m64”pip安装scipy

有人对如何进一步诊断这个问题有什么建议吗


(OSX 10.7,最新的MacBookPro,使用gcc从CLI工具和Xcode编译)

从源代码和构建中提取似乎可以正确创建fat二进制文件。我不确定这是否是一个已经修复的bug(我在scipy-dev列表中没有看到任何内容),或者它是否与pip/easy_安装有关,但下面是我为使其正常工作所做的:

git clone https://github.com/scipy/scipy.git; cd scipy
export ARCHFLAGS='-arch i386 -arch x86_64'
python setup.py config
python setup.py build
sudo python setup.py install
没有特殊的CC环境变量,gfortran来自
brew安装gfortran
,令人惊讶的是,gcc看起来像是llvm gcc