關於搭建虛擬環境的一系列問題(僅供參考)

看到有同學用Anaconda環境來做實驗,我自己也搭了一個。使用jupyter notebook 確實比在終端直接操作方便。但是很頭疼的一點就是有可能會出現Anaconda自帶的Python跟原來的Python發生衝突,各種百度、Google搜了好幾天纔給解決。還有就是最新版的Python 3.8.2也可能有些bug沒被修復,導致Pycharm無論執行任何程序都會報一個錯誤,這可能就是新版軟件的一些缺陷吧,用的人少,問題還沒被解決。不過慢慢來,總歸還是有辦法的。在這裏總結一下,大家遇到了也好有個參考,如果有新的解決方法也可以分享一下。一根筷子你掰得斷,一把筷子你不好掰呀!粗鄙之人,不吝賜教。

首先說一下我至今遇到的一些問題吧:

1、虛擬環境內存不足

我原來的實驗環境是在虛擬機裏裝的Ubuntu 16.04,不過在安裝的時候之給它分配了20G的內存,在搭了一些環境之後內存嚴重不足,明顯感覺卡頓。於是就想着擴容,用過虛擬機的都知道可以給虛擬環境調節內存,但是調節的只是它的最大容量,內部容量並沒有成功擴展。百度、Google的擴容辦法非常麻煩,我到現在也還沒解決,所以就生氣直接重新裝了一個。這裏給出我的虛擬環境的一些配置。電腦配置好的話可以多給點配置。

建議:硬盤要給夠(40G吧)

           網絡適配器橋接模式(網速比較快)

           強烈推薦虛擬機,不建議雙系統,我最開始用雙系統因爲顯卡的問題導致Ubuntu出現了很多毛病。而且還會有其他還多問題。

2、安裝Anaconda後導致Python衝突

      Anaconda安裝的時候會自動附帶一個Python,會與Ubuntu自帶的Python發生衝突,它會默認把系統的Python覆蓋掉,在終端中直接調用“python”命令的話默認執行的是Anaconda的Python。因爲pyspark 是基於系統自帶的Python版本的,使用起來可能會出現一些問題。

解決方法如下:修改配置文件,指定“python”命令對應的Python版本。

在家目錄(~)下調用vim ~/.bashrc 命令修改.bashrc文件,然後在文件末尾加上下面三or四行代碼:

①指定Ubuntu中自帶的Python:

alias python = “/usr/bin/python3.8”

②指定Anaconda附帶的Python:

alias python-anaconda = “home/hadoop/anaconda3/bin/python3.7”

③指定Ubuntu中自帶的pip:

alias pip = “/usr/bin/pip3”

 

④指定Anaconda附帶的pip:

alias pip-anaconda = “home/hadoop/anaconda3/bin/pip3”

這行我沒加,因爲我加了之後還是不能使用pip-anaconda命令在Anaconda中安裝模塊,解決方法見問題3。

 

每個人的Python版本不一樣,可以去目錄裏用ls命令看一下。

 

配置完之後使用source ~/.bashrc 使配置文件生效。

之後在終端中調用”python”命令和”python-anaconda”命令調用的是不同的Python版本。

如圖:

經過以上步驟就可以把兩個Python版本區分開了。

3、在Anaconda中安裝pyspark模塊

     上面第二個問題雖然可以解決Python版本調用的問題,但是使用pip命令調用的是Ubuntu自帶的pip命令。並不能在Anaconda中安裝需要的模塊。因爲我們需要pyspark模塊,但是Anaconda中好像沒有附帶pyspark模塊,所以我們可以使用”conda install pyspark”安裝pyspark模塊,安裝完之後就可以使用在jupyter notebook中導入pyspark模塊了。

4、Pycharm中運行程序報錯(任何程序,輸出Hello World也報錯)

       默認情況下我們在Pycharm中創建項目的時候是這樣的(使用的是Ubuntu中自帶的Python版本):

但是我使用的是Ubuntu 20.04,它自帶的Python版本是Python 3.8.2,這個版本打包執行文件的時候好像會出錯(TypeError:an integer is required(got type bytes))。例如:

我連這個模塊都導入不了,還怎麼玩。心態崩了。又是查了很久,但是到現在也還沒解決。所以最後突發奇想,Anacond中附帶的Python版本是Python 3.7。那我能不能在Pycharm中使用Anaconda 裏附帶的Python版本?於是一番操作:

於是就可以運行了唄:

這個問題算是被“僞解決”了,不過Pycharm終於算是可以用了。不知道Python 3.8什麼毛病。不過大家如果不用Ubuntu 20.04應該不會遇到這個問題,因爲其他版本的Ubuntu自帶的應該不是Python 3.8版本,Pychrm應該可以直接用。

問題暫時就這些,這幾天遇到這麼些問題,我真的很無語,很難受,很煩。中間難到想哭,一坐就是一晌,一坐又是一晌,我甚至在想我真的適合這個行業嗎?怎麼這麼菜呀!!!但是過後又一想,做什麼不會遇到問題,怕遇到bug就不做程序員不就好了,怕學不會就別學唄。但是最終我們還是要從事一門行業的,就算在家種地也會有很多麻煩,種地,澆地,打藥,撒肥料兒,收麥收苞谷出花生割豆兒(播種、澆水、除蟲、施肥、豐收)。想要成功總歸還是要堅持的,三天打漁兩天曬網總不會有太大進步。沒人能代替自己,雖說人生無處不相逢,但是沒有任何人可以時刻陪伴着我們,人生沒有Crtl + C、V,遇見問題了就努力去解決吧,不會了可以商量,但最終還是要自己解決的。(又是碗雞湯)就像搭建環境,有人用虛擬機,有人用雙系統,有人用雲服務器……

大家遇到新的問題可以提出來一起討論,前人栽樹後人乘涼,我們的問題會越來越少的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章