Python学习—Python虚拟环境(pyvenv、virtualenv)

我们为什么需要使用虚拟环境?


Python的包(或模块)的下载保存非常独特;有时候可能会带来问题。

不同系统,Python模块的安装位置也不一样。例如,大多数系统模块安装在 sys.prefix 环境变量指定的目录中,以Mac OS X为例:

Python虚拟环境(virtualenv)


使用pip或easy_install安装的第三方模块通常安装在 site packages 目录:

Python虚拟环境(virtualenv)


下面举一个实际的例子来说明使用虚拟环境的好处。


假设你有两个Python项目-A和B,这两个项目都需要使用同一个第三方模块-tensorflow。如果这两个项目使用相同的tensorflow版本,也许不会有什么问题。

但是,当A和B项目使用不同的tensorflow版本时-A使用tensorflow 0.70版本;B使用tensorflow 0.80版本。由于Python导入模块不能区分模块版本,导致A、B不能使用tensorflow的不同版本,这在很多情况下是不能接受的。

使用虚拟环境的另一个好处是:保持开发环境的简洁、有序。


什么是Python虚拟环境?


Python虚拟环境可以为项目创建相互独立的开发环境,也就是你可以为每个项目安装各自使用依赖模块。

使用虚拟环境可以很好的解决上面A、B项目遇到的问题:为A、B项目分别创建虚拟环境,然后在各自的虚拟环境中安装不同的tensorflow版本。

使用虚拟环境需要借助virtualenv或pyvenv,它们的使用非常简单。


安装virtualenv、pyvenv


如果你使用Python 2,你可以使用pip安装virtualenv:

$ sudo pip install virtualenv


如果你使用Python 3,它默认安装了pyvenv。

virtualenv和pyvenv的使用方法类似。由于pyvenv是较新的工具,本帖以它为例。


创建一个存放虚拟环境的目录:

$ mkdir python-env
$ cd python-env


创建一个虚拟环境:

$ pyvenv env_A


上面命令在当前目录创建了env_A目录,目录结构:

├── bin
│   ├── activate
│   ├── activate.csh
│   ├── activate.fish
│   ├── easy_install
│   ├── easy_install-3.5
│   ├── pip
│   ├── pip3
│   ├── pip3.5
│   ├── python -> python3.5
│   ├── python3 -> python3.5
│   └── python3.5 -> /opt/local/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5
├── include
├── lib
│   └── python3.5
│       └── site-packages
└── pyvenv.cfg


使用创建的虚拟环境env_A:

$ source env/bin/activate


提示符中包含:

(env_A) $

现在你通过pip安装的包都会安装这个虚拟环境中;导入(import)模块时也只能使用这个虚拟环境中的模块。

如果要退出env_A虚拟环境,执行:

(env_A) $ deactivate

虚拟环境的工作原理


主要就是操作环境变量。

Python在非虚拟环境下的路径:

$ which python
/usr/bin/python

激活虚拟环境再次查看Python路径:

$ source env/bin/activate
(env) $ which python
/Users/snail/python-env/env_A/bin/python

$PATH 环境变量在激活前后不一样了:

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:
 
$ source env/bin/activate
(env) $ echo $PATH
/Users/snail/python-env/env_A/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:

你可以看看  sys.prefix 和其他Python系统环境变量。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python virtualenv是一个用来创建和管理Python虚拟环境的工具。虚拟环境是一个独立的Python运行环境,可以用来隔离不同项目的依赖关系和包版本。通过使用虚拟环境,可以在同一台主机上同时运行多个项目,每个项目都有自己独立的Python解释器和安装的软件包。 要使用virtualenv创建虚拟环境,首先需要安装virtualenv工具。可以使用pip命令安装,例如在命令行中输入"pip install virtualenv"。安装完成后,可以使用以下命令创建虚拟环境virtualenv [虚拟环境名称] 例如,运行"virtualenv myenv"将创建一个名为myenv的虚拟环境。 要激活虚拟环境,首先需要进入虚拟环境所在的目录,在命令行中输入"activate"。这将激活虚拟环境,并将命令行提示符修改为虚拟环境名称。要退出虚拟环境,可以在命令行中输入"deactivate"。 使用虚拟环境可以避免不同项目之间的包冲突,并且可以方便地管理每个项目的依赖关系。通过为每个项目创建独立的虚拟环境,可以确保项目之间的独立性和隔离性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [通过pyenv和virtualenv搭建python开发环境](https://blog.csdn.net/hao_zhang_shrek/article/details/100054170)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python虚拟环境virtualenv】](https://blog.csdn.net/qq_35844043/article/details/81842060)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值