看板 Python 關於我們 聯絡資訊
※ 引述《hellokidding (Bad Trip)》之銘言: : 新手同問: : 因為自己已經先安裝了VS Code : 後來因為課程所以又安裝了Anaconda : 並從上面又再裝了一次VS Code : 變成我打pip 指令安裝的套件全部都不會安裝在conda的環境下 : 變成要再打指令安裝一次 : 請問這個辦法有什麼解嗎? : 現在電腦裡有三個版本的python : 分別是mac 內建的python2.7 : vs code 的python 3.7 : 以及 conda python 3.7 : 現在有兩個問題: : 1.我要怎麼知道我現在是用什麼版本的python寫程式? 在終端機下鍵入以下命令(其中 $ 表示 command prompt,不是命令的一部分) ```bash $ which python /usr/bin/python $ type python python is /usr/bin/python ``` 上面兩個命令都可以用來檢索當前執行的命令是位在哪裡。如果要檢查當前系統 環境變數的設定,可以加上 -a 參數,比如: ```bash $ which -a python /usr/bin/python /bin/python $ type -a python python is /usr/bin/python python is /bin/python ``` 當我啟用環境之後會是這樣的: ```bash $ conda activate base $ which python /home/hsins/anaconda3/bin/python ``` 同樣的方式可以用來檢查 pip 的位置,這樣一來就能清楚地知道如果透過命令 pip install [PACKAGE NAME] 安裝時,是安裝到系統環境的 /bin/ 目錄還是 虛擬環境的目錄下了。 不過我通常是用 zsh 的套件,在終端機上顯示,這樣就不需要每次都透過命令 來確認了: https://i.imgur.com/SHV3gbm.gif
: 2.如果要讓環境統一變成conda python 3.7 該怎麼做? 不建議這麼做。 環境之所以叫做環境,除了隔離出專案跟專案之間的差異之外,也是拿來隔離系 統所使用到的環境。舉例來說好了,多數使用 mac OS 進行開發的開發者會安裝 homebrew 這款套件管理工具,但他透過 ruby 來執行,如果說運行 brew 時, 你的系統環境當前的 ruby 比他所用的版本要老舊或太新,那麼就可能發生問題 ;又或者很多人拿來下載影片的命令行工具 youtube-dl 是使用 Python 來執行 如果系統預設的 Python 版本差異太大,也有可能無法執行。 為了區隔開發與運行的環境,建議保留當前系統預設的版本,並透過虛擬環境工 具來建立開發環境,常見的 Python 虛擬環境有: pipenv, pyenv, conda, poetry 這些的實現方式略有不同,有些是將直接在專案資料夾下面建立環境,有些是直 接在系統目錄下建立環境,然後透過指令去啟用,以多數人使用的 conda 來說 就是採用後者。 保持系統環境變數的乾淨,要指定版本時透過命令去切換環境,這是目前的趨勢 ,其實 brew 這些套件管理工具,背後的原理也差不多是這樣。同樣的狀況你會 在 node.js 中看到,比如 npm;也會在 ruby 中看到,比如說 rvm... 等。 : 還請板上的前輩幫忙解答~~ : 感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.37.86 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1584186669.A.D39.html
Hsins: BTW,如果你會經常使用某一個環境,可以用 alias 或是 ln 03/14 19:53
Hsins: 建立別名或建立 soft link 的方式來處理。 03/14 19:53
roccqqck: 想學poetry 請問有人會嗎 03/14 23:07
roccqqck: 有無懶人包 03/14 23:07
s860134: 這篇才是根治 03/15 00:46
s860134: pyenv 主要是把編譯 python 自動化做的很好,pipenv 才是 03/15 00:50
s860134: 整理 module 和虛擬環境 03/15 00:50
Hsins: pyenv 也可以像 rvm 跟 npm 那樣建制不同版本的環境,不過 03/16 01:16
Hsins: 都有用 conda 的話,我覺得就多此一舉了... 雖然肥很多 03/16 01:17