整頓Anaconda Navigator、VS Code、PyGame

更新於 發佈於 閱讀時間約 11 分鐘

不知道為什麼,原本相安無事的兩個人,突然間看對了眼,開始出雙入對、形影不離。這除了讓人看了很不順眼之外,也很浪費時間。雖然想盡辦法要拆散他們,但都沒成功。逼不得已,只好狠下心來,冒險將一切抹除,讓他們走完「成、住、壞、空」最後的階段,輪迴至下一輪的「成、住、壞、空」。只是沒想到,新的輪迴開始之後,原本的問題沒解決,他們還是如膠似漆,反倒是原本水乳交融的另一段關係,從此斷絕,令人神傷。

事情是這樣的。

為了管理Python的package,所以安裝了miniconda這個輕量版的Anaconda,以及Anaconda Navigator。另外,為了擺脫Microsoft Word龐大笨重的身軀,不再用大砲打小鳥,所以改用輕量級的markdown來寫作。試用了幾款的markdown編輯器,最後決定使用Microsoft出的VS Code。

VS Code其實是一款功能強大的程式編輯器,許多寫Python的人會跟Anaconda整合在一起來使用。不過一直以來,都是用Spyder這個編輯器,所以VS Code就單純的只當markdown編輯器使用,不讓他跟Anaconda Navigator認識,以免太複雜的關係,帶來難以預料的後果。

日子就這樣一天一天的過去,一切都是那麼的平穩、順暢,要管理Python的package,就打開Anaconda Navigator;要寫文章,就打開VS Code,兩個人各自獨立、各自生活。

可是,某一天,不知道為什麼,Anaconda Navigator和VS Code這兩個原本不相識的人,居然就天雷勾動地火,開始打得火熱,每次啟動Anaconda Navigator時,他就會自動去啟動VS Code。兩個人這種黏踢踢的樣子,除了讓人想翻白眼之外,最讓人受不了的是浪費時間、浪費資源。明明要管理package時,只需要Anaconda Navigator一個人就夠了,卻非得每次再多拉VS Code一起,肖想兩個人領兩份薪水,但只做一個人的工作。

為了制止這種不當的行為,於是開始想辦法切斷Anaconda Navigator和VS Code之間的聯繫。既然是Anaconda Navigator去招惹VS Code的,那理該從Anaconda Navigator著手。

要調整Anaconda Navigator的設定,位置在File > Preferences。打開之後,赫然發現,在VS Code path這個欄位裡頭,居然很神奇地自動填上了VS Code所在的位置。真不知道Anaconda Navigator是怎麼辦到的,怎麼可能會知道VS Code芳蹤何處!之所以會這麼訝異,是因為現在用的VS Code是不用安裝的可攜式版本,並未安裝在安裝軟體時慣用的C碟,而是放在E碟。這樣子都還能找得到,算他厲害!

把VS Code所在位置的記錄給刪除清空並套用之後,一邊心裡想著,這樣應該就能切斷這兩人間惱人的關係了,一邊進行測試。

「咦?!這刪掉的記錄怎麼又回來了?」心裡一邊嘀咕一邊又試了好幾次,還是一樣的結果。這種事也不是第一次碰到了,有些軟體,明明更改設定的方式看起來就很簡單,可是總藏有一些貓膩,非得同時處理一些其他的小細節不可,不然休想順利更改。看到畫面最下面還有個「Configure Navigator」,打開一看,是Navigator的設定檔內容,裡頭有更細部的設定。

Navigator的設定檔有它特別的格式和關鍵字,網路查了一下,要關閉VS Code,需要加入一行「vscode_enable = False」。照做之後……還是沒用!

最後一招,「Reset to defaults」這個總可以了吧!沒想到,還是不行,而且更讓人傻眼的是,先前加入的那一行還在,這個恢復原廠設定的按鈕,一點作用都沒有。

網路上也有人提到這個現象,不過也沒什麼解方。看來只好使出砍掉重練這個大絕招了,順便把可以升級的package都升級。

重新安裝較新版的miniconda和Anaconda Navigator之後,果然……還是沒用!

「老子就不信搞不定你們這兩個傢伙!」一股怒氣直衝腦門,雙手滑鼠、鍵盤不停歇,開始朝軟體更深的內部挖下去。

先前就很好奇,Anaconda Navigator怎麼會知道VS Code在哪裡?絕不可能整顆硬碟去找,一定有什麼比較有效率的方法。如果能把這部分的程式改掉,讓他找不到或根本就不去找,那應該就可以解決問題了。

在反覆嘗試失敗的過程中,觀察到一個現象:原本不知道VS Code芳蹤何處的Anaconda Navigator,只有在VS Code已經啟動之後,才能在自己啟動的過程中,找到VS Code的位置。這現象看起來就讓人懷疑,Anaconda Navigator是透過查詢機碼來知道VS Code在哪裡。所以,如果把VS Code放到不同的位置,之後不要讓這兩個人同時啟動見面,那就可以避免死灰復燃了。

要改VS Code的位置其實還挺簡單的,因為用的是可攜式版本的VS Code,只要把資料夾的名字改掉就可以了。就這樣,總算找到個雖不滿意但可以接受的辦法,來制止Anaconda Navigator和VS Code間的糾纏不清。

改程式的做法,最終還是以失敗收場,因為不太敢亂改,也沒辦法把所有程式碼從頭到尾研究透徹,只能找出有vscode字眼的部分改看看。不過雖然失敗,但卻證實了,Anaconda Navigator搜尋VS Code位置的方式中,還真的有機碼這一項。他會先去找Windows裡頭的Program Files、Program Files (x86)等內定擺放軟體的資料夾,然後再找特定的機碼。這也是Anaconda Navigator之所以要在VS Code啟動之後,才能找到他的位置的原因。因為VS Code的位置是在E碟,透過機碼才能知道。

找到方法切斷Anaconda Navigator和VS Code間的聯繫之後,再來是要安裝pygame。

Pygame是個比較不合群的傢伙,除了在Anaconda Navigator未安裝的package清單中看不到他之外,也沒辦法在命令列介面中用conda這個指令安裝。要安裝pygame,只能用pip。依照先前安裝的經驗,很快就裝好了,只是,唉!總是會有個「只是」出現。只是import pygame時,卻說找不到,而在已安裝package的清單中,也的確沒看到他的蹤影。

明明安裝時,最後有安裝成功的訊息,那怎會找不到?

網路上有人說要用pip3,而不是pip。照做之後,還是找不到。

也有人說pip的版本會有影響,要用比較新的版本才行。可是現在用的pip版本已經比他用的還新了呀,但還是找不到。

眾說紛紜中,看到有個網友提到他成功安裝的方法,但他也不知道為什麼那麼做可以成功,反正就是成功了,典型的只知其然,不知其所以然。無論如何,每個人的使用環境不同,只能姑且一試。

這方法是這樣子的:先安裝Anaconda Navigator的Home pane中的CMD.exe Prompt,然後用Anaconda Prompt這個命令列介面,以pip來安裝。

還真的成功了!可是…… why?

研究了老半天,總算知道原因了。原來,先前安裝時,用的是Anaconda PowerShell Prompt,後來用的是Anaconda Prompt,而這兩個介面會把pygame裝到不同的地方。用pip list -v可以看到所有已安裝的package,以及安裝的位置。很明顯的,用Anaconda Prompt安裝,才能裝到正確的位置,而在Anaconda Navigator的已安裝package清單中,也才會顯示有安裝pygame。

這實在是不知道說什麼才好。Anaconda PowerShell Prompt是裝好miniconda後,自動出現在開始功能表中的。想當然耳,就用它來裝pygame了,誰知道這樣反而不行,還非得再多裝個Anaconda Prompt才可以。既然如此,那為什麼裝好miniconda之後,不直接就給使用者Anaconda Prompt就好?實在是搞不懂!

折騰了好些時間,Anaconda Navigator和pygame總算又願意在一起了。除此之外,在重新搓合他們倆的過程中,還意外找到可以永久避免Anaconda Navigator和VS Code糾纏不清的方法。

在Anaconda Navigator的Home pane中,列出了一些package,有已經安裝好的,可以從這裡啟動、更新、移除,也有尚未安裝的,可以從這裡安裝。在這裡,也看到了VS Code。

測試了一下,發現如果Anconda Navigator不知道VS Code的存在,那在Home pane中,就不會列出VS Code。既然如此,如果VS Code出現在Home pane中,那想辦法讓他消失,不就可以切斷他和Anaconda Navigator間的糾纏了?

在每個package圖示的右上方,都有個齒輪,從那裡可以更新、移除package。可是……又來了!每次都會有個可是。可是在VS Code圖示的齒輪裡頭,所有的選項都不能用,想把VS Code從這裡移除,根本辦不到。

還好這問題的答案還挺容易找的,事實上,官網的文件中就有。要把package從Home pane中移除,要在C:\Users\username\AppData\Roaming\.anaconda\navigator\applications這個資料夾中,造一個附檔名是yaml的檔案,檔案裡頭寫著像下列這樣符合yaml格式的指令:

vscode:
  is_available: false

這樣當Anaconda Navigator啟動時,就會去執行這個檔案裡頭的指令,而VS Code也就不會出現在Anaconda Navigator的眼前,徹底斷絕掉兩人之間的糾葛。

呼~~~總算該分手的分手,該在一起的在一起,跨過新一輪「成、住、壞、空」中「成」的階段,讓一切就定位,邁入「住」的階段。

希望這次可以「住」久一點。

留言
avatar-img
留言分享你的想法!
avatar-img
ysf的沙龍
18會員
149內容數
寫點東西自娛娛人
ysf的沙龍的其他內容
2025/04/14
花了些時間,靜下心來,仔仔細細地研究了一番,總算把Python呼叫函數時引數的傳遞方式給徹底搞清楚了。
2025/04/14
花了些時間,靜下心來,仔仔細細地研究了一番,總算把Python呼叫函數時引數的傳遞方式給徹底搞清楚了。
2024/05/08
呼!折騰了好久,終於徹底搞清楚pygame的各個blend mode所用的計算式,到底是長啥樣子了。
2024/05/08
呼!折騰了好久,終於徹底搞清楚pygame的各個blend mode所用的計算式,到底是長啥樣子了。
2023/12/20
在寫《The Nature of Code閱讀心得筆記——使用Python實作》的[第四章]4.3節時,原書提到,在使用Java的ArrayList時,如果用迴圈一面走訪一面又移除其中的元素,那會有難以察覺的問題存在。寫個小程式測試的結果發現,Python的list也會有一樣的問題。
Thumbnail
2023/12/20
在寫《The Nature of Code閱讀心得筆記——使用Python實作》的[第四章]4.3節時,原書提到,在使用Java的ArrayList時,如果用迴圈一面走訪一面又移除其中的元素,那會有難以察覺的問題存在。寫個小程式測試的結果發現,Python的list也會有一樣的問題。
Thumbnail
看更多
你可能也想看
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
我之前非常愛筆記軟體 甚至自己就有用不同程式框架寫了兩個(只是都沒堅持 也用過很多其他很棒的 飛書、某些中國版 obsidian (叫思源筆記吧好像) 但最後終究還是認為,我們不應該花太多時間"做筆記"而是把時間放在"用筆記"之上
Thumbnail
我之前非常愛筆記軟體 甚至自己就有用不同程式框架寫了兩個(只是都沒堅持 也用過很多其他很棒的 飛書、某些中國版 obsidian (叫思源筆記吧好像) 但最後終究還是認為,我們不應該花太多時間"做筆記"而是把時間放在"用筆記"之上
Thumbnail
為什麼是重啟呢? 因為去年試寫過一陣子,覺得編輯體驗不是太好。 Vocus 的圖片功能實在太、難、用、了!
Thumbnail
為什麼是重啟呢? 因為去年試寫過一陣子,覺得編輯體驗不是太好。 Vocus 的圖片功能實在太、難、用、了!
Thumbnail
《最後指令 Last Command》講述一個所有人類都已經二維化並不知所蹤,只留下人造程式執行人類給予他們的「最後指令」、苟延殘喘的世界裡,失去人類的人造程式無法執行為人類服務的「最後指令」,於是漸漸失去生存意義,最終自我毀滅。
Thumbnail
《最後指令 Last Command》講述一個所有人類都已經二維化並不知所蹤,只留下人造程式執行人類給予他們的「最後指令」、苟延殘喘的世界裡,失去人類的人造程式無法執行為人類服務的「最後指令」,於是漸漸失去生存意義,最終自我毀滅。
Thumbnail
俗話說「萬事起頭難」還真是一點也沒錯,從開始動筆寫《The Nature of Code閱讀心得筆記——使用Python實作》,到寫完頭一章,再到把文章放上網站開始發表,總共隔了快三個月的時間。
Thumbnail
俗話說「萬事起頭難」還真是一點也沒錯,從開始動筆寫《The Nature of Code閱讀心得筆記——使用Python實作》,到寫完頭一章,再到把文章放上網站開始發表,總共隔了快三個月的時間。
Thumbnail
不知道為什麼,原本相安無事的兩個人,突然間看對了眼,開始出雙入對、形影不離。這除了讓人看了很不順眼之外,也很浪費時間。雖然想盡辦法要拆散他們,但都沒成功。逼不得已,只好狠下心來,冒險將一切抹除,讓他們走完「成、住、壞、空」最後的階段,輪迴至下一輪的「成、住、壞、空」。只是沒想到
Thumbnail
不知道為什麼,原本相安無事的兩個人,突然間看對了眼,開始出雙入對、形影不離。這除了讓人看了很不順眼之外,也很浪費時間。雖然想盡辦法要拆散他們,但都沒成功。逼不得已,只好狠下心來,冒險將一切抹除,讓他們走完「成、住、壞、空」最後的階段,輪迴至下一輪的「成、住、壞、空」。只是沒想到
Thumbnail
如果,你是個專業的工程師,在外面臨時遇到需要修改或測試專案的情況,但手邊又沒有電腦跟網路,又或是,今天你臨時需要外出一陣子,但又放不下自己的專案,你會怎麼辦呢?
Thumbnail
如果,你是個專業的工程師,在外面臨時遇到需要修改或測試專案的情況,但手邊又沒有電腦跟網路,又或是,今天你臨時需要外出一陣子,但又放不下自己的專案,你會怎麼辦呢?
Thumbnail
寫程式最怕碰到的,就是信心滿滿地寫好程式後,發現結果不如預期,而且完全看不出問題出在哪裡。這種慘況可以分成兩種:一種是程式很長、很複雜,想要把心機很重,躲在幽暗深處的臭蟲給抓出來,即使有功能強大的除錯工具,都不是件簡單的事;另一種是程式沒幾行,一切看起來都很清楚正常,臭蟲根本沒地方躲藏,可是結果就是
Thumbnail
寫程式最怕碰到的,就是信心滿滿地寫好程式後,發現結果不如預期,而且完全看不出問題出在哪裡。這種慘況可以分成兩種:一種是程式很長、很複雜,想要把心機很重,躲在幽暗深處的臭蟲給抓出來,即使有功能強大的除錯工具,都不是件簡單的事;另一種是程式沒幾行,一切看起來都很清楚正常,臭蟲根本沒地方躲藏,可是結果就是
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News