热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Windows与Linux环境下搭建虚拟环境(virtualenv、virtualenvwrapper)

1)Python虚拟环境是指创建一个隔绝的Python环境,说的再直白一点就是将你的python复制一部分放在你硬盘的拎一个地方,一般在你进行一项具有毁灭性的测试或则你需要一个较少变动的环境时,你

1)Python虚拟环境是指创建一个隔绝的Python环境,说的再直白一点就是将你的python复制一部分放在你硬盘的拎一个地方,一般在你进行一项具有毁灭性的测试或则你需要一个较少变动的环境时,你会考虑创建一个虚拟环境。

2)我们可以使用virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。但是我们不推荐使用virtualenv,而是推荐virtualenvwrapper,原因很简单,virtualenvwrapper是virtualenv的一个升级版,使用virtualenvwrapper可以更好的快速创建管理虚拟环境。

优点

1) 使不同应用开发环境相互独立 2) 环境升级不影响其他应用,也不会影响全局的python环境 3) 防止出现包管理混乱及包版本冲突 Linux系统环境

安装 virtualenv,建议使用pip3安装到python3环境下

pip3 install -i https://pypi.douban.com/simple virtualenv

通过命令创建虚拟机环境

virtualenv venv #venv为虚拟环境目录名,目录名自定义

virtualenv venv 将会在当前的目录中建立一个venv的文件夹,包含了Python可执行文件,以及 pip 库的一份拷贝,这样就能安装其余包了。
指定Python解释器

# -p参数指定Python解释器 virtualenv -p /usr/bin/python3 venv    

激活activate

source ./venv_data01/bin/activate

进入虚拟环境

(venv) [root@master bin]# which pip3 ../venv/bin/pip3 (venv) [root@master bin]# pip3 install -i https://pypi.douban.com/simple django==3.2 (venv) [root@master bin]# pip3 list Package Version ----------------- -------- asgiref 3.4.1 Django 3.2 pip 21.1.3 pytz 2021.1 setuptools 57.1.0 sqlparse 0.4.1 typing-extensions 3.10.0.0 wheel 0.36.2

测试创建项目

(venv) [root@master pythonProJect]# django-admin startproject pythonTest01 (venv) [root@master pythonProJect]# vim pythonTest01/pythonTest01/settings.py ..... 28 ALLOWED_HOSTS = ["*"] (venv) [root@master pythonProJect]# python3 pythonTest01/manage.py runserver 0.0.0.0:9000 # 直接执行 deactivate命令,退出当前虚拟环境,系统会自动销毁venv的PATH环境 (venv) [root@master pythonProJect]# deactivate virtualenvwrapper

virtualenvwrapper提供了一系列命令方便与虚拟环境的管理,因此推荐直接使用virtualenvwrapper

# 安装virtualenvwrapper依赖于virtualenv,确保virtualenv安装 pip3 install -i https://pypi.douban.com/simple virtualenvwrapper pip install -i https://pypi.douban.com/simple virtualenvwrapper-win  #Windows使用该命令

安装完成后,配置环境变量:
可使用whereis查看virtualenvwrapper.sh的路径:

[root@master virtualenvs]# whereis virtualenvwrapper.sh virtualenvwrapper: /usr/local/bin/virtualenvwrapper.sh

在 ~/.bash_profile 最后一行添加如下内容:

source /usr/local/bin/virtualenvwrapper.sh

virtrualenvwrapper会安装到python的bin目录下,因此该路径是python安装目录下bin/virtualenvwrapper.sh

# 读入配置文件,当即生效 source ~/.bash_profile    

virtualenvwrapper基本使用

可以选择默认目录下的创建 比如:/data/virtualenv 文件夹中建立,也能够经过添加环境变量来指定虚拟环境目录的安装位置。

[root@master virtualenvs]# pwd /data/virtualenvs # virtualenvwrapper存放虚拟环境目录 export WORKON_HOME=/data/virtualenv # 能够不用,可是最好配上,方便后续的迁移 export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3/

建立虚拟环境

# venv_py3是虚拟环境名,能够任意指定 mkvirtualenv venv_py3 

指定python版本

# 不指定默认就是当前系统下的python2.7 mkvirtualenv -p /usr/bin/python3 venv

查看虚拟环境路径

(venv) [root@master /]# which pip3 /data/virtualenvs/venv/bin/pip3

基本命令

查看虚拟环境目录

workon

切换到虚拟环境

workon venv

退出虚拟环境

deactivate

删除虚拟环境

rmvirtualenv venv

报错ERROR: virtualenvwrapper could not find virtualenv in your path

#出现这种错误,是由于 virtualenv 这个基础依赖包被安装在默认python目录下,就须要作一个软链接 ln -s; #查找virtualenv的位置 sudo find / -name "virtualenv" /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenv # 最后进行软链接 sudo ln -s /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenv /usr/local/bin/virtualenv

虚拟环境的迁移:

若是按照上述步骤,进行到此,并无在环境变量中设置虚拟环境目录,那么默认会在下在/data/virtualenv目录中,将其打包迁移至同一目录便可。环境迁移时,最好是两台服务器的环境是一致的,如python安装路径。若是服务器的环境一致,那么如下步骤能够省略:

拷贝迁移至其余服务器下进行解压

tar -xcf venv.tar.gz ~/.virtualenv/venv

进入 /data//virtualenv/venv/bin/ 下修改activate文件中参数

VIRTUAL_ENV="/home/.virtualenv/venv" export VIRTUAL_ENV

将上述VIRTUAL_ENV修改成当前venv文件夹正确的路径,而后执行

source activate

查看虚拟环境内的python、pip的路径是否虚拟环境内的python和pip,若是不是,那么仍是须要修改其路径

windows环境安装virtualenv

# 建议使用pip3安装到python3环境下 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper-win

# 配置环境变量: # 控制面板 => 系统和安全 => 系统 => 高级系统设置 => 环境变量 => 系统变量 => 点击新建 => 填入变量名与值 变量名:WORKON_HOME 变量值:自定义存放虚拟环境的绝对路径 eg: WORKON_HOME: D:Virtualenvs

Windows与Linux环境下搭建虚拟环境(virtualenv、virtualenvwrapper)
image.png
创建虚拟空间
  • mkvirtualenv test1 创建一个名为 test1 的 virtualenv
使用

# 在终端工作的命令 # 1、创建虚拟环境到配置的WORKON_HOME路径下 # 选取默认Python环境创建虚拟环境: -- mkvirtualenv 虚拟环境名称 # 基于某Python环境创建虚拟环境: -- mkvirtualenv -p python2.7 虚拟环境名称 -- mkvirtualenv -p python3.6 虚拟环境名称 # 2、查看已有的虚拟环境 -- workon # 3、使用某个虚拟环境 -- workon 虚拟环境名称 # 4、进入|退出 该虚拟环境的Python环境 -- python | exit() # 5、为虚拟环境安装模块 -- pip或pip3 install 模块名 # 6、退出当前虚拟环境 -- deactivate # 7、删除虚拟环境(删除当前虚拟环境要先退出) -- rmvirtualenv 虚拟环境名称 pycharm使用

新建项目

Windows与Linux环境下搭建虚拟环境(virtualenv、virtualenvwrapper)
image.png

添加环境

Windows与Linux环境下搭建虚拟环境(virtualenv、virtualenvwrapper)
image.png

使用环境

Windows与Linux环境下搭建虚拟环境(virtualenv、virtualenvwrapper)
image.png
导出依赖包的方法

在windows系统开发环境的项目中,pip3安装了很多的模块,最终该项目才可以运行,比如CRM代码上传到一个新的服务器,是一个空的环境,还需要你在部署一遍,比如CRM代码。
以下是可以解决方案:

# 1、在windows的cmd命令行中,通过此命令导出模块信息 pip3 freeze > requirements.txt # 2、把此文件发送给Linux机器 或者 直接拷贝其内容,也可以在Linux机器上,安装此文件即可,自动读取文件每一行的模块信息,自动安装 pip3 install -i https://pypi.douban.com/simple -r requirements.txt

推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了在Python中使用getpass模块隐藏密码输入的方法,以保护用户的密码不被其他人员看到。同时还提到了在PyCharm中运行该命令无效的问题,需要在terminal中运行。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 【爬虫训练场】:分页爬虫案例设计Demo,Python Flask与MySQL的完美连接
    网站类应用,一定离不开MySQL,所以本案例将带着大家学习一下,通过Flask调用MySQL数据,并实现分页呈现。类被称作蓝图,它是一个存储操作方法的容器,Flask可以通过Blu ... [详细]
  • 人脸检测 pyqt+opencv+dlib
    一、实验目标绘制PyQT界面,调用摄像头显示人脸信息。在界面中,用户通过点击不同的按键可以实现多种功能:打开和关闭摄像头, ... [详细]
author-avatar
a98246813
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有