为什么这个 Python 包试图使用不存在的 gcc?

为什么这个 Python 包试图使用不存在的 gcc?

我正在尝试在 Solaris 上安装 PyCrypto for Python 3。无论我是通过“ python3 setup.py install”还是“ pip3 install pycrypto”,我都会遇到同样的问题:调用了一个不存在的 gcc:

python3 setup.py install
[...]
/opt/csw/bin/gcc-4.8 -pipe -m32 -march=pentiumpro -Wno-unused-result -fwrapv -Wall -Wstrict-prototypes -pipe -m32 -march=pentiumpro -I/usr/include/gmp -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/ -I/opt/csw/include/python3.3m -c src/_fastmath.c -o build/temp.solaris-2.11-i86pc.32bit-3.3/src/_fastmath.o
unable to execute /opt/csw/bin/gcc-4.8: No such file or directory

现在,我对我所使用的机器的历史一无所知。 /opt/csw/bin/gcc-4.8 可能在过去的某个时刻存在。但现在不再这样了。 export CC=/usr/bin/gcc (或其他一些海湾合作委员会)不能解决问题--- 一定会调用 /opt/csw/bin/gcc-4.8 。

我对安装 PyCrypto 不太感兴趣,而对理解更感兴趣为什么这个假电话是一开始就发出的。值“/opt/csw/bin/gcc-4.8”保存在哪里?系统如何/从哪里获得认为需要调用该编译器的信息?

我唯一能想到的是Python3最初是用/opt/csw/bin/gcc-4.8编译的,并且Python3将其永久烧录在/opt/csw/bin/gcc-4.8是编译器的地方编译东西。如果是这种情况,我最好删除并重新安装 Python3 以摆脱这种错误的依赖关系吗?

答案1

/opt/csw/bin/gcc-4.8路径表示Oracle发行版预装的OpenCSW(4.8被删除或有其他版本)。

尝试从内部设置CC和环境变量:CXXsetup.pyos.environ

os.environ["CC"] = "g++-4.7" os.environ["CXX"] = "g++-4.7"

(4.7 是我的版本g++,将其设置为您的版本/bin)。

答案2

/opt/csw/bin/gcc-4.8也许创建一个指向您的cc或编译器的软链接gcc

相关内容