python3.6的venv模塊使用詳解
今天,在在使用 pycharm 的使用,進(jìn)行創(chuàng)建 python的時候,發(fā)現(xiàn)使用默認(rèn)的創(chuàng)建的選項(xiàng)使用的python 3環(huán)境 。而我系統(tǒng)默認(rèn)的python環(huán)境是 python 2.7 環(huán)境;這就引起了我的興趣。
我打開pycharm 的終端,發(fā)現(xiàn):
前面 有個 venv 參數(shù),通過 調(diào)研了一番我發(fā)現(xiàn):python 的 venv 模塊可以創(chuàng)建一個獨(dú)立的虛擬的python運(yùn)行環(huán)境,這樣就和系統(tǒng)的python獨(dú)立開來了。而我使用fedora 28的系統(tǒng),默認(rèn)安裝了python2.7 和 python3.6 兩種python環(huán)境。
我們使用 python 內(nèi)置的文檔查看,venv 相關(guān),其描述為:
Help on package venv:
NAME
venv - Virtual environment (venv) package for Python. Based on PEP 405.
我們使用python3 查看 venv 模塊的使用方法:
➜ env pwd /home/xuyaowen/Desktop/workplace/env ➜ env python3 -m venv -h usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip] [--prompt PROMPT] ENV_DIR [ENV_DIR ...] Creates virtual Python environments in one or more target directories. positional arguments: ENV_DIR A directory to create the environment in. optional arguments: -h, --help show this help message and exit --system-site-packages Give the virtual environment access to the system site-packages dir. --symlinks Try to use symlinks rather than copies, when symlinks are not the default for the platform. --copies Try to use copies rather than symlinks, even when symlinks are the default for the platform. --clear Delete the contents of the environment directory if it already exists, before environment creation. --upgrade Upgrade the environment directory to use this version of Python, assuming Python has been upgraded in-place. --without-pip Skips installing or upgrading pip in the virtual environment (pip is bootstrapped by default) --prompt PROMPT Provides an alternative prompt prefix for this environment. Once an environment has been created, you may wish to activate it, e.g. by sourcing an activate script in its bin directory.
通過上面的介紹,我們大致知道 venv 的模塊使用方法:
首先我們創(chuàng)建虛擬環(huán)境:
➜ venvtest pwd /home/xuyaowen/Desktop/workplace/venvtest ➜ venvtest python3 -m venv .
我們查看創(chuàng)建的結(jié)果:
➜ venvtest ls bin include lib lib64 pyvenv.cfg ➜ venvtest ll * lrwxrwxrwx. 1 xuyaowen xuyaowen 3 Jul 27 11:44 lib64 -> lib -rw-r--r--. 1 xuyaowen xuyaowen 69 Jul 27 11:44 pyvenv.cfg bin: total 32K -rw-r--r--. 1 xuyaowen xuyaowen 2.2K Jul 27 11:44 activate -rw-r--r--. 1 xuyaowen xuyaowen 1.3K Jul 27 11:44 activate.csh -rw-r--r--. 1 xuyaowen xuyaowen 2.4K Jul 27 11:44 activate.fish -rwxr-xr-x. 1 xuyaowen xuyaowen 271 Jul 27 11:44 easy_install -rwxr-xr-x. 1 xuyaowen xuyaowen 271 Jul 27 11:44 easy_install-3.6 -rwxr-xr-x. 1 xuyaowen xuyaowen 243 Jul 27 11:44 pip -rwxr-xr-x. 1 xuyaowen xuyaowen 243 Jul 27 11:44 pip3 -rwxr-xr-x. 1 xuyaowen xuyaowen 243 Jul 27 11:44 pip3.6 lrwxrwxrwx. 1 xuyaowen xuyaowen 7 Jul 27 11:44 python -> python3 lrwxrwxrwx. 1 xuyaowen xuyaowen 16 Jul 27 11:44 python3 -> /usr/bin/python3 include: total 0 lib: total 4.0K drwxr-xr-x. 3 xuyaowen xuyaowen 4.0K Jul 27 11:44 python3.6
我們當(dāng)前 產(chǎn)生了很多虛擬環(huán)境相關(guān)的文件:
../venvtest ├── bin │ ├── activate 用來激活虛擬環(huán)境 │ ├── activate.csh │ ├── activate.fish │ ├── easy_install │ ├── easy_install-3.6 │ ├── pip │ ├── pip3 │ ├── pip3.6 │ ├── python -> python3 │ └── python3 -> /usr/bin/python3 ├── include ├── lib │ └── python3.6 │ └── site-packages ├── lib64 -> lib └── pyvenv.cfg
默認(rèn)情況下,是創(chuàng)建 一個全新的python執(zhí)行環(huán)境,并包含pip命令,當(dāng)你激活虛擬環(huán)境后,我們可以 使用 pip 安裝我們需要的第三方包并且新安裝的包不在系統(tǒng)中出現(xiàn)。下面我們進(jìn)行激活環(huán)境:
➜ venvtest source ./bin/activate (venvtest) ➜ venvtest
前面出現(xiàn) 虛擬環(huán)境的名稱,說明我們環(huán)境激活成功,這時候我們再進(jìn)行運(yùn)行python :
(venvtest) ➜ venvtest python -V Python 3.6.5
可以發(fā)現(xiàn),此時我們的python的環(huán)境為 3.6.5, 虛擬環(huán)境運(yùn)行成功。當(dāng)然你也可以在創(chuàng)建虛擬環(huán)境的時候使用--system-site-packages選項(xiàng),來讓虛擬環(huán)境使用系統(tǒng)的已經(jīng)安裝的包。
我們進(jìn)一步閱讀 activate 腳本:
(venvtest) ➜ bin cat activate | head -n 2 # This file must be used with "source bin/activate" *from bash* # you cannot run it directly
你會發(fā)現(xiàn),它前兩行說明,你只能使用 source 命令來激活它。
好了,到這里大致會使用 venv 模塊了。希望你使用愉快。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
pycharm+PyQt5+python最新開發(fā)環(huán)境配置(踩坑)
這篇文章主要介紹了pycharm+PyQt5+python最新開發(fā)環(huán)境配置(踩坑),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02Python字符串本身作為bytes進(jìn)行解碼的問題
這篇文章主要介紹了解決Python字符串本身作為bytes進(jìn)行解碼的問題,文末給大家補(bǔ)充介紹了,Python字符串如何轉(zhuǎn)為bytes對象?Python字符串和bytes類型怎么互轉(zhuǎn),需要的朋友可以參考下2022-11-11剖析Python的Tornado框架中session支持的實(shí)現(xiàn)代碼
這篇文章主要介紹了剖析Python的Tornado框架中session支持的實(shí)現(xiàn)代碼,這樣就可以使用Django等框架中大家所熟悉的session了,需要的朋友可以參考下2015-08-08Python中選擇結(jié)構(gòu)實(shí)例講解
在本篇文章里小編給大家整理了關(guān)于Python選擇結(jié)構(gòu)的基礎(chǔ)知識點(diǎn)及相關(guān)實(shí)例,有需要的朋友們可以學(xué)習(xí)參考下。2022-11-11