Re: [問題] 使用Visual Studio 是否就能包含所有功能

作者: Hsins (翔)   2020-03-14 19:51:07
※ 引述《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... 等。
: 還請板上的前輩幫忙解答~~
: 感激不盡
作者: Hsins (翔)   2020-03-14 19:53:00
BTW,如果你會經常使用某一個環境,可以用 alias 或是 ln建立別名或建立 soft link 的方式來處理。
作者: roccqqck (ccqq)   2020-03-14 23:07:00
想學poetry 請問有人會嗎有無懶人包
作者: s860134 (s860134)   2020-03-15 00:46:00
這篇才是根治pyenv 主要是把編譯 python 自動化做的很好,pipenv 才是整理 module 和虛擬環境
作者: Hsins (翔)   2020-03-16 01:16:00
pyenv 也可以像 rvm 跟 npm 那樣建制不同版本的環境,不過都有用 conda 的話,我覺得就多此一舉了... 雖然肥很多

Links booklink

Contact Us: admin [ a t ] ucptt.com