首先說一下存在問題:
本人打算在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
所需的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安裝結果