linux安装fasttext报错,升级gcc后成功解决

首先说一下存在问题:

本人打算在linux安装一个fasttext用来训练词向量,本来是想要从gensim来调用fasttext的,但是加载大的本地txt一直不对,没办法了只好在linux安装一个fasttext了,他支持直接加载txt来进行训练,但是pip install fasttext直接出错了:

Command "/root/anaconda3/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-req-build-nqkwqurw/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-8tp5iux8/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-req-build-nqkwqurw/error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

一堆错误也看不懂,上网一顿查找也没整明白,后来看到error: command 'x86_64-linux-gnu-gcc' failed with exit status 1这句话,突然想起来貌似fasttext官网给出了fasttext运行环境要求:

https://github.com/facebookresearch/fastText---官网地址

官网要求fasttext的运行环境是:(g++-4.7.2 or newer) or (clang-3.3 or newer)

我的linux的g++版本很低(貌似是2点几的版本),所以会报错,接下来就好办了,升级gcc就行了;

我是全程按照这个哥们的帖子来执行的,居然完美解决,下面把地址和内容贴出来:

转载自https://itbilu.com/linux/management/V1vdnt9ll.html

各发行版本Linux中,其自带的gcc安装源版本都比较旧,我所使用CentOS 6系统中,gcc版本只有4.4.7。最近要安装几个软件要求gcc 4.8+,无奈只能手动升级gcc

 

1. 下载最新版本gcc

gcc当前最新版本是5.2,下面是我找到的两个下载镜像,下载速度还可以,都可以使用:

wget http://gcc.parentingamerica.com/releases/gcc-5.2.0/gcc-5.2.0.tar.bz2  # 这个测试了 不能使用了
// 或
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.2.0/gcc-5.2.0.tar.bz2

上面两个镜像分别位于加拿大和日本,由于gcc本身比较大(100MB左右),所以下载会需要一些时间。如果下载很慢,也可以到gcc官网查找较快的下载镜像。

 

2. 解压下载文件

gcc安装文件下载完成后,执行以下命令解压文件:

tar -xf gcc-5.2.0.tar.bz2

 

3. 下载gcc依赖文件和库

解压完成后,执行以下命令进入工作目录:

cd gcc-5.2.0

执行download_prerequisites脚本,下载gcc依赖文件和库:

./contrib/download_prerequisites

download_prerequisites脚本,会下载安装gcc所需的mpfrgmpmpc文件。

 

4. 配置安装gcc

建立一个输出目录,编译时所有生成的中间文件都放到该目录下:

mkdir gcc-temp

工作目录切换至输出目录,并在其中执行配置和安装:

cd gcc-temp

执行configure配置安装文件:

../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

配置完成后,执行以下命令,编译gcc

make

注意:编译gcc时间较长,我用了近三个小才编译完成。

编译完成后,安装gcc

make install

安装完成后还需要替换系统默认的gcc,执行以下命令,查找5.2版本的安装文件:

ls /usr/local/bin | grep gcc

输出如下:

gcc
gcc-ar
gcc-nm
gcc-ranlib
x86_64-unknown-linux-gnu-gcc
x86_64-unknown-linux-gnu-gcc-5.2.0    //就是这个
x86_64-unknown-linux-gnu-gcc-ar
x86_64-unknown-linux-gnu-gcc-nm
x86_64-unknown-linux-gnu-gcc-ranlib

执行升级命令:

/usr/sbin/update-alternatives --install  /usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc-5.2.0 52

 

5. 验证安装

执行以下命令查看gcc版本:

gcc -v

执行以下命令查看g++版本:

g++ -v

或使用which gcc查看gcc安装目录,在安装目录下执行-v命令。例如,安装目录为/usr/local/bin/gcc

/usr/local/bin/gcc -v

如果输出中有类似以下行,说明安装成功:

gcc 版本 5.2.0 (GCC) 

最后附上我的升级结果:

fasttext安装结果

 


posted @ 2018-11-15 16:14  zxyza  阅读(5435)  评论(1编辑  收藏  举报