首先说一下存在问题:
本人打算在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(' ', ' ');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
所需的mpfr
、gmp
和mpc
文件。
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安装结果