python中如何使用虚拟环境
作者:杨彦星 发布时间:2021-02-17 22:07:49
在进行python的开发过程中一直倡导使用虚拟环境来进行项目隔离,这样不会因为python的包不同而导致各种问题,但是以往为了图省事简单,安装包就一直使用pip install 进行全局安装,这样做其实很不好,最近也开始尝试使用虚拟环境来对项目进行隔离开发。
在python中一般情况下有两套方案,一种是使用virtualenv/venv 方式,还有一种是使用pipenv,但是看到网上对于pipenv这个项目有些非议,就目前来说项目的issue和pr很多,但是开发者似乎不太想要对其进行维护,所以还是先尝试比较成熟稳定的virtualenv/venv方式吧,至于pipenv 以后再进行尝试。
我所考虑的几个问题
如何创建一个虚拟隔离环境
如何在虚拟环境中安装包
如何使用国内的镜像源加速
如何迁移项目到别的机器上
现在主要在python3中开发,所以就直接使用venv的方式吧,virtualenv和venv方式差不多,如果你是在python2中那么就使用virtualenv吧。
如何创建一个虚拟隔离环境
创建目录,并使用命令创建虚拟环境
mkdir venvtest
cd venvtest
python3 -m venv venttest
我是在windows环境下,执行完上面的命令以后会在venvtest目录下venvtest目录,这个目录下有python3环境的基础标准库,并不包含你在全局环境中安装的第三方包。
调用虚拟环境的\Scripts\activate
命令就可以激活虚拟环境,激活虚拟环境以后,命令行提示符前会显示当前虚拟环境的名字:(venttest) E:\venvtest>
安装第三方库
和全局安装一样,使用pip install 命令,只不过这次是安装到了虚拟环境,如运行pip install requests
命令,运行之后再查看venvtest\venttest\Lib\site-packages
中就会有requests库了,但是前提一定要使用activate激活当前的虚拟环境,要不就安装到了全局的python site-packages目录里了。
如何使用国内的镜像源加速
在虚拟机环境中使用pip 读取的是全局的镜像回事配置,就是要创建一个环境变量HOME
,然后在HOME环境变量的目录下创建pip目录,再创建一个pip.ini,写入
[global]
index-url = https://mirrors.aliyun.com/pypi/simple
我这里使用的是阿里云的镜像加速。
如何迁移项目到别的机器上
我这里简单使用Flask创建一个hello world的项目
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return '欢迎来到我的世界'
在激活虚拟环境的情况下使用flask run
命令来运行服务,此时因为flask安装在虚拟环境中,即使全局python环境中没有flask也可以运行,但一定要在激活虚拟环境的状态。
如何迁移项目
换一个电脑开发或者在多人开发的情况下,需要怎么迁移项目呢?
简单的方式是直接将原虚拟环境直接打包到新的目录,然后修改一个相应的目录配置。
主要是Script\activate.bat
将里面的set "VIRTUAL_ENV=E:\vtest\venttest"
修改为新的路径。
还有一种方式是在原虚拟环境下备份出第三方库列表,然后在新环境中重新安装。
备份列表命令使用pip freeze > requirements.txt
将该虚拟环境安装的第三方包备份到requirements.txt,在新的环境使用pip install -r requirements.txt
进行安装,使用pip freeze 命令也会同时将第三方库的版本信息备份,这样也保证了迁移以后的前后版本一致。
新电脑上也要安装相同使用的python主环境,如你的虚拟环境是pyhon3,新环境只有python2,那也是不行的。
但是之前做项目的时候对第三方库源码进行了修改,这里也需要同时修改一下。
pycharm项目配置虚拟环境
pycharm 在创建项目的时候可以直接使用venv来创建
在New environment using 的下拉选项中选择 Virualenv,在Base interpreter 中使用python 3.5 ,这里列出了系统中安装的python版本。如果没有列出的话也可以点击后面的… 来手工选一下。
来源:https://www.yangyanxing.com/article/use_venv_in_python.html
猜你喜欢
- 无论是Windows、Linux、还是树莓派 。配置python3的opencv环境都是让人头大的一件事情,尤其是许多人用pip安装以后,发
- 背景我打开手机,发现有人在QQ空间里叫嚣。看他得意的样子,显然是在家里呆久了,已经忘了天有多高。预处理设计一个迷宫自动寻路算法并不难,但是对
- windows下如果同时安装了python 32 位版本和64位版本,如何简便地启动指定的版本?# 启动python 3 32位版本py -
- Pytorch损失函数torch.nn.NLLLoss()在各种深度学习框架中,我们最常用的损失函数就是交叉熵(torch.nn.Cross
- 最近在使用Python开发系统,需连接mysql数据库,我用的是Python3连接MySQL8.0,其中老是报错以下问题:网上给了各种各样的
- 根本原因:python定义函数时,一般都会有指定返回值,如果没有显式指定返回值,那么python就会默认返回值为None我们输入的代码如下:
- 1.1 二叉树的初始化#initial of BinaryTreeclass BinaryTree: def __
- 互联网是一个飞速发展的行业,任何的止步不前都会导致被淘汰,只是时间早晚的问题,所以一个公司的学习与创新能力是非常重要的,特别是对于一个年轻的
- goland如果当前project用了版本控制器,其下面新建的所有的项目默认都是加入到版本控制里面,所以项目名称和文件都是红色的。解决办法:
- 最小编辑距离或莱文斯坦距离(Levenshtein),指由字符串A转化为字符串B的最小编辑次数。允许的编辑操作有:删除,插入,替换。具体内容
- # -*- coding: UTF-8 -*-from __future__ import unicode_literalsimport I
- Smptp类定义:smtplib.SMTP(host[,port[,local_hostname[,,timeout]]]),作为SMTP的
- 多个Python版本:在同一台机器上安装不同的Python,例如2.7和3.4。虚拟环境:独立的环境,既可以同时安装特定版本的Python,
- 有时候我们会有这样的一个需求:我们定义了一个 Python 的方法,方法接收一些参数,但是调用的时候想将这些参数用命令行暴露出来。比如说这里
- 前言本文中所有的代码使用 JavaScript 编写,但你也可以用其他兼容 JSR 223 的脚本语言。这些例子可作为脚本文件也可以在交互式
- 制作一个查看器可以查看豆瓣前100名电影的信息,当然这个爬取信息比较简单。所以重点放在 QThread 多线程的应用上面。QThread 子
- 此文档是一位高手同事Hewei的原创实践总结,过程真是精彩,最后修复损坏数据库取得圆满效果,值得收藏的一篇好文章。前几天因为mysql数据库
- 1.安装1.1 创建虚拟环境mkdir myprojectcd myprojectpython3 -m venv venv1.2 进入虚拟环
- 记录了MySQL 5.7.19 winx64解压缩版安装教程,具体内容如下系统环境:Win7 x64软件准备:mysql 5.7.19 wi
- 一、之 Pandas Dataframe合并在数据分析中,避免不了要从多个数据集中取数据,那就避免不了要进行数据的合并,这篇文章就来介绍一下