2019年6月19日

venv : virtual environment

venv 會在目前目錄下 create 一個 virtual environment 用的目錄(在 venc create 時指定)。
並且把目錄加進 sys.path 中。

之後,在這個virtual environment 中安裝的 python module,都會裝在這個目錄中,而不會是系統 /usr/lib/...

這樣是為了解決 python module 一堆相依和版本衝突情況。
讓每一個 project 存放自己需要的版本。
--- 但是這樣project folder 不就變很大?

使用方式是:
到project folder 下.. python3 -m venv myenv source myenv/bin/activate 然後你就會看到 prompt 會多一個 (myenv),代表你現在是在 virtual environment 的環境。
要退出的話,直接: $ deactivate


python2 跟 python3 的 command 不一樣,但是動作是相同的。
python2 沒有 venv 這個 command,所以要直接用virtualenv: virtualenv myenv source myenv/bin/activate


另外,在 venv 狀態下 pip install 的 package 都會安裝在local 的 myenv 目錄下,
所以將來要在另一個地方重建的話,有必要要把目前venv 安裝的東西都再裝一次。
先把安裝的module列出: $ pip freeze > requirements.txt 這個 requirement.txt 就是目前venv環境中所有安裝的 module.

之後,到新環境,只要: $ pip install -r requirements.txt 就可以把一樣的 module 都裝起來

沒有留言:

張貼留言