1. 程式人生 > >Ubuntu下配置Anaconda、Pycharm編譯環境

Ubuntu下配置Anaconda、Pycharm編譯環境

1. 必要性

Linux比Windows做開發實在是要強太多了。自帶的Python編譯器,命令列模式,讓程式設計師都非常的喜歡。而且最重要的是,使用Linux,你感覺自己真的是在使用程式設計的方式運用這臺計算機。而使用Windows,你真覺得一切都是Window…

當然,我並不會因為逼格,才去Linux的,而是太多的優秀的庫Word2vec、fasttext等都需要C或者Python環境。雖然Windows也能勉強(經過一系列填坑以後,而且是能填好。通常是填不好)執行C語言版本的這些庫。但是Linux下就可以很完美的執行(好吧,經過這篇以後,我覺得Linux也不是很容易了,可能是我開啟的方式不對)。

總而言之,我們從無到有,總共分為這麼幾步:

  1. 安裝Ubuntu
  2. 安裝java
  3. 安裝pycharm
  4. 安裝anaconda
  5. 安裝g++、gcc
  6. 安裝fasttext

下面我們將會一步步進行講解。

2. 安裝java

第一步安裝Ubuntu,不用我講了吧,對於執意要裝實體Ubuntu的大神不用看我的小白帖子,對於裝VM的Ubuntu,使用VM的簡易安裝程式,完全無人值守即可完成安裝。

下面我們重點講解安裝java,其實這話不準確,應該是jdk,也就是java開發包。為什麼要裝java呢,是因為pycharm需要它,所以必須先裝java,再裝pycharm,不然pycharm執行不起來。

網上是這樣教我們的,只需要三個步驟:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install Oracle-java8-installer

當我們小白一樣,按照這個命令一個個執行的時候,發現第二個開始就開始警告,到第三個的時候,完全執行不了。

當然,你也可以使用下載好的jdk包,然後安裝,具體的可以參閱:《Ubuntu下配置java》

不過無論你如何掙扎,都會出現第二個的錯誤,為E: Some index files failed to download, they have been ignored, or old ones used instead.

這個錯誤,網上有提示說要修改DNS,但是實際上修改DNS並不能解決,至少我沒有解決。還需要刪除庫後,然後修改更新的映象,這裡推薦使用163的映象,因為阿里的映象也被ign了。

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

上面這兩個是刪除lock的,應該是沒有用,但是為了安全起見,我也做了。這個的結果就是最後更新的時候,需要多做很多。

至此,基本上都解決完錯誤了。下面我們安裝pycharm。

3. 安裝pycharm

只需要去官網下載一個最新的pycharm即可,然後具體的就看這裡《安裝pycharm》。值得要提的一點是,一定要看其內容評論,修改hosts檔案之後才能使用:

找到etc/hosts,在終端中開啟$sudo gedit hosts,加上一行
0.0.0.0 account.jetbrains.com就可以了。

4. 安裝anaconda

Anaconda的安裝就沒什麼好講的,主要就是下載比較緩慢,這裡建議從清華映象下載,並且使用迅雷下載。這裡要提醒的是Anaconda3 - 4.2之前還是python3.5版本,之後就是3.6版本了。因此我們這裡選擇Anaconda3 - 4.2安裝,因為有很多庫並不支援python3.6。

5. 安裝g++、gcc

Fasttext包需要C語言的支援,因此,需要安裝g++、gcc。
這裡,使用g++ -vgcc -v來檢視自身的系統的版本,如果沒有的話,還是需要安裝的,這裡可以使用以下命令:
sudo apt-get install build-essential
這樣就把依賴包都安裝了,這裡可以參考《安裝G++、Gcc》
當然你也可以使用:

apt-get install gcc-4.8
apt-get install g++-4.8

來安裝指定版本的,這裡是有一些奇怪的地方,例如有可能安裝的和Ubuntu核心不一致。建議使用與Ubuntu核心一致的編譯器。

6. 安裝fasttext

Pycharm的包安裝裡當時並未找到fasttext的包。命令列下的pip install安裝時,在執行時,由於一個***i385-cython.so的檔案,這個檔案是fasttext的使用者層的動態庫,在編譯時總是出現一個錯誤__cxa_throw_bad_array_new_length。

這個錯誤連StackOverFlow上面都沒有解決辦法,它總是會指向第五步裡的錯誤,認為是編譯器4.9版本以上才會出現的錯誤,但是我們第五步已經修改為4.8並且與核心相同了。

因此,我就想直接從外部包直接安裝這個,因為那樣的話,其編譯過程,也就是生成動態庫的過程是由我們系統自己編譯的,應該不會出現這個問題,結果就這樣解決了。

具體的,解決辦法如下:
首先下載好fasttext包,然後再fasttext.tar.gz包所在的目錄下執行:

tar -zxvf fasttext-0.8.3.tar.gz
cd fasttext-0.8.3
python setup.py build
python setup.py install

因為pip的安裝不一定有用,畢竟我們之前用過了,有可能仍然出現問題。

7. 小結

至此,我們的安裝這個的艱難之路就結束了。因為網上很多這個過程,都是以順利的過程結束的,但是實際安裝中,仍然會存在很多問題。我也僅僅是列舉了我所遇到的問題以及解決辦法。如果出現了其他問題,還是需要另查資料來解決。