zoukankan      html  css  js  c++  java
  • 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(' ', ' ');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安装结果

    
    
  • 相关阅读:
    【HDU3480】Division-DP+四边形不等式优化+贪心
    【HDU3480】Division-DP+四边形不等式优化+贪心
    【NOI2015T2】软件包管理器-树链剖分维护路径和子树信息
    【NOI2015T2】软件包管理器-树链剖分维护路径和子树信息
    【APIO2011T1】方格染色-并查集+位运算推导
    【APIO2011T1】方格染色-并查集+位运算推导
    【NOI2016T4】区间-线段树+离散化+决策单调性优化
    【NOI2016T4】区间-线段树+离散化+决策单调性优化
    【NOI2010T4】航空管制-拓补排序+贪心
    BZOJ 1753 Who's in the Middle
  • 原文地址:https://www.cnblogs.com/zxyza/p/9964229.html
Copyright © 2011-2022 走看看