在本文中,我们将带你了解virtualenv问题-无法激活在这篇文章中,我们将为您详细介绍virtualenv问题-无法激活的方方面面,并解答激活virtualenv环境常见的疑惑,同时我们还将给您一
在本文中,我们将带你了解virtualenv 问题 - 无法激活在这篇文章中,我们将为您详细介绍virtualenv 问题 - 无法激活的方方面面,并解答激活virtualenv环境常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的bash – 激活virtualenv的问题、Centos7 虚拟环境 virtualenv 与 virtualenvwrapper 的安装及基本使用、Linux下virtualenv与virtualenvwrapper详解、Linux下安装virtualenv与virtualenvwrapper。
本文目录一览:- virtualenv 问题 - 无法激活(激活virtualenv环境)
- bash – 激活virtualenv的问题
- Centos7 虚拟环境 virtualenv 与 virtualenvwrapper 的安装及基本使用
- Linux下virtualenv与virtualenvwrapper详解
- Linux下安装virtualenv与virtualenvwrapper
virtualenv 问题 - 无法激活(激活virtualenv环境)
我围绕我的项目创建了一个 virtualenv,但是当我尝试激活它时,我不能。它可能只是语法或文件夹位置,但我现在很难过。
您可以在下面看到,我创建了 virtualenv 并将其命名为 venv。一切看起来都不错,然后我尝试通过运行来激活它sourcevenv/bin/activate
我认为它可能只与我的系统路径有关,但不确定指向什么(我知道如何编辑路径)。我在 python 7 / windows os,虚拟环境 2.2.x
处理 virtualenv 的依赖关系完成 virtualenv 的处理依赖c:\testdjangoproj\mysite>virtualenv --no-site-packages venv--no-site-packages 标志已弃用;它现在是默认行为。使用真正的前缀 ''C:\\Program Files (x86)\\Python''venv\Scripts\python.exe 中的新 python 可执行文件文件 venv\Lib\distutils\distutils.cfg 以不同的内容存在;不覆盖婷安装 setuptools..................完成。安装 pip .... 完成。c:\testdjangoproj\mysite>source venv/bin/activate''source'' 未被识别为内部或外部命令,可运行的程序或批处理文件。c:\testdjangoproj\mysite>source venv/bin/activate''source'' 未被识别为内部或外部命令,可运行的程序或批处理文件。c:\testdjangoproj\mysite>源 mysite/bin/activate''source'' 未被识别为内部或外部命令,可运行的程序或批处理文件。c:\testdjangoproj\mysite>
答案1
小编典典source
是为在 Linux(或任何 Posix,但无论如何,不是 Windows)上运行的用户设计的 shell 命令。
在 Windows 上,virtualenv 创建一个 .bat/.ps1
文件,因此您应该运行(根据激活脚本上venv\Scripts\activate
的
virtualenv文档)。
只需运行activate
,不带扩展名,因此无论您使用的是 cmd.exe 还是 PowerShell,都将使用正确的文件。
bash – 激活virtualenv的问题
SYS_INSTALL="apt-get install -y" PIP_INSTALL="pip install" # Be sure to install setuptools before pip to properly replace easy_install. $SYS_INSTALL git $SYS_INSTALL python-dev $SYS_INSTALL python-setuptools $SYS_INSTALL python-pip $PIP_INSTALL virtualenv
还能够创建新的虚拟环境:
virtualenv .env
但是,在运行如下命令之后:
. .env/bin/activate
我有
-bash: .env/bin/activate: No such file or directory
在查看文件夹.env / bin后,我发现只有一个python文件.这里的整个文件列表:
.env/lib: python2.7 .env/include: python2.7 .env/bin: python
这是什么问题?
解决方案添加–always-copy
virtualenv .env –always-copy
命令 . .env / bin / activate确实与文件夹.env / bin中激活文件的源相同.事实上,显然命令“source”是命令“.”的别名,而不是相反.注意 .这里有一个空格,并使用不同于.下面讨论(隐藏文件和文件夹).
我注意到你正在调用你的文件夹.env,这不是标准做法.前面的文件和文件夹.由Mac OS X“隐藏”.标准做法是调用虚拟环境目录env或venv,并调用虚拟环境规范文件.env.
因此,如果您的spec文件名为.env,并且您的虚拟环境目录名为env,则可以运行
source env / bin / activate要么. ENV /斌/激活.
Centos7 虚拟环境 virtualenv 与 virtualenvwrapper 的安装及基本使用
一. 使用虚拟环境的原因
在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。此时,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。这里,就要使用 virtualenv 与 virtualenvwrapper 来解决这个问题,一个可以帮助我们管理不同 Python 环境的绝好工具。virtualenv 可以在系统中建立多个不同并且相互不干扰的虚拟环境。
二.virtualenv 安装与使用
1. 安装 virtualenv
#指定清华源下载 pip 的包 (-i 后面为清华源)
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
#也可以直接使用命令
pip3 install virtualenv
#(如果提示 pip 版本太旧可以使用) 升级 pip 工具
pip3 install --upgrade pip
2.virtualenv 使用方法
(1) 创建目录
mkdir Myproject
cd Myproject
(2) 创建独立运行环境 - 命名
virtualenv --python=/usr/bin/python3 demo1
#得到独立第三方包的环境,并且指定解释器是 python3
(3) 进入虚拟环境
source activate
#此时进入虚拟环境 (venv)Myproject
4. 安装第三方包
(venv)Myproject: pip3 install django==2.2
#此时 pip 的包都会安装到 venv 环境下,venv 是针对 Myproject 创建的
5. 退出 venv 环境
deactivate 命令
6.
virtualenv 是如何创建 “独立” 的 Python 运行环境的呢?原理很简单,就是把系统 Python 复制一份到 virtualenv 的环境,用命令 source activate 进入一个 virtualenv 环境时,virtualenv 会修改相关环境变量,让命令 python 和 pip 均指向当前的 virtualenv 环境。
7. 安装最简单的 django 项目
# mysite2 为项目名
django-admin startproject mysite2
python3 manage.py startapp app01 #app01 为 app 名称
修改下 settings.py
ALLOWED_HOSTS = ["*"]
# centos7 需要开启 web 端口
firewall-cmd --permanent --add-port=8000/tcp
firewall-cmd --reload
python manage.py runserver 0.0.0.0:8000
三.virtualenvwrapper 安装与使用 (推荐)
virtualenv 的一个最大的缺点就是:
每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。
一种可行的解决方案是,将所有的虚拟环境目录全都集中起,并且针对不同的目录做不同的事。
使用 virtualenvwrapper 管理你的虚拟环境(virtualenv),其实他就是统一管理虚拟环境的目录,并且省去了 source 的步骤。
1. 安装 virtualenvwrapper
# 安装
pip3 install virtualenvwrapper
# 配置全局变量
[root@hsz Myproject]# find / -name virtualenvwrapper.sh
find: ‘/proc/70508’: No such file or directory
/usr/local/python3/bin/virtualenvwrapper.sh
[root@hsz Myproject]# vi ~/.bashrc
# 添加内容
# 虚拟环境的保存目录
WORKON_HOME=~/Envs
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=''--no-site-packages''
source /usr/local/python3/bin/virtualenvwrapper.sh
# 使之生效
source ~/.bashrc
也可以:
vi ~/.bash_profile
写入以下几行代码(export可以先去掉)
export WORKON_HOME=~/Envs # 设置virtualenv的统一管理目录, 以后自动下载的虚拟环境,全部都放在这
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=''--no-site-packages'' # 添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/opt/python347/bin/python3 # 指定python解释器的本体(注意此路径随不同的linux环境改变而改变)
source /opt/python34/bin/virtualenvwrapper.sh # 执行virtualenvwrapper安装脚本
2. 使用 virtualenvwrapper 创建项目
# 创建虚拟环境 demo3
# 如果使用: mkvirtualenv demo3 -p python3 (使用相应的 python 版本)
[root@hsz Myproject]# mkvirtualenv demo3
Using base prefix ''/usr/local/python3''
New python executable in /root/Envs/demo3/bin/python3.6
Also creating executable in /root/Envs/demo3/bin/python
Installing setuptools, pip, wheel...
done.
# 查看有哪些虚拟环境
(demo3) [root@hsz Myproject]# workon
demo3
# 进入 demo3 虚拟环境
(demo3) [root@hsz Myproject]# workon demo3
(demo3) [root@hsz Myproject]# ls
demo1 demo2 mysite
# 安装 django == 后面表示版本
(demo3) [root@hsz]# pip3 install django==2.2
# 创建 django 项目
(demo3) [root@hsz Myproject]# django-admin startproject mysite3
(demo3) [root@hsz Myproject]# ls
demo1 demo2 mysite mysite3
# mysite3 下的 mysite3 修改 settings.py 的配置 , 在 [] 加”*”
ALLOWED_HOSTS = ["*"]
# 运行 django 成功
python manage.py runserver 0.0.0.0:8000
# 注意 centos7 需要开启 web 端口,步骤如下
firewall-cmd --permanent --add-port=8000/tcp
firewall-cmd --reload
# 或者直接关闭 firewall
## 关闭命令
systemctl stop firewalld
## 查看 firewall 状态
systemctl status firewalld
Linux下virtualenv与virtualenvwrapper详解
在使用 Python
开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;
亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。
此时,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。
这里,就要隆重介绍 virtualenv
,一个可以帮助我们管理不同 Python
环境的绝好工具。
virtualenv
可以在系统中建立多个不同并且相互不干扰的虚拟环境。
一、Linux下安装、配置virtualenv
#指定清华源下载pip的包
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
#升级pip工具
pip3 install --upgrade pip
1.安装virtualenv
pip3 install virtualenv
2.创建目录
mkdir Myproject
cd Myproject
3.创建独立运行环境-命名
virtualenv --no-site-packages --python=python3 venv#得到独立第三方包的环境,并且指定解释器是python3
4.进入虚拟环境
source venv/bin/activate#此时进入虚拟环境(venv)Myproject
5.安装第三方包
(venv)Myproject: pip3 install django==1.9.8
#此时pip的包都会安装到venv环境下,venv是针对Myproject创建的
6.退出venv环境
deactivate命令
7.
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。
二、确保开发环境的一致性
1.假设我们在本地开发环境,准备好了项目+依赖包环境
2.现在需要将项目上传至服务器,上线发布
3.那么就要保证服务器的python环境一致性
解决方案:
1.通过命令保证环境的一致性,导出当前python环境的包
pip3 freeze > requirements.txt
这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。
可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。
2.上传至服务器后,在服务器下创建virtualenv,在venv中导入项目所需的模块依赖
pip3 install -r requirements.txt
三、虚拟环境之virtualenvwrapper
virtualenv
的一个最大的缺点就是:
每次开启虚拟环境之前要去虚拟环境所在目录下的 bin
目录下 source
一下 activate
,这就需要我们记住每个虚拟环境所在的目录。
并且还有可能你忘记了虚拟环境放在哪。。。
- 一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,例如/opt/all_venv/,并且针对不同的目录做不同的事。
- 使用virtualenvwrapper管理你的虚拟环境(virtualenv),其实他就是统一管理虚拟环境的目录,并且省去了source的步骤。
步骤1:安装virtualenvwrapper
pip3 install virtualenvwrapper
步骤2:设置Linux的环境变量,每次启动就加载virtualenvwrapper
把下面两行代码添加到 ~/.bashrc(针对于当前用户)文件中 或 /etc/profile(针对于所有的用户) #写入如下内容
打开文件
vim ~/.bashrc
写入以下两行代码
export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=''--no-site-packages'' #添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/opt/python347/bin/python3 #指定python解释器
source /opt/python34/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本
读取文件,使得生效,此时已经可以使用virtalenvwrapper
source ~/.bashrc
步骤3:基本使用virtualenvwrapper
创建一个虚拟环境:
$ mkvirtualenv my_django115
这会在 ~/Envs 中创建 my_django115 文件夹。
在虚拟环境上工作:激活虚拟环境my_django115
$ workon my_django115
再创建一个新的虚拟环境
$ mkvirtualenv my_django2
virtualenvwrapper 提供环境名字的tab补全功能。
当有很多环境, 并且很难记住它们的名字时,这就显得很有用。
workon还可以任意停止你当前的环境,可以在多个虚拟环境中来回切换
workon django1.15
workon django2.0
也可以手动停止虚拟环境
deactivate
删除虚拟环境,需要先退出虚拟环境
rmvirtualenv my_django115
步骤四:常用其他命令

lsvirtualenv
列举所有的环境。
cdvirtualenv
导航到当前激活的虚拟环境的目录中,比如说这样您就能够浏览它的 site-packages 。
cdsitepackages
和上面的类似,但是是直接进入到 site-packages 目录中。
lssitepackages
显示 site-packages 目录中的内容。
完整官网介绍:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html
图解
二、Mac下创建pycharm
第二步:
第三步:此时这里的Django环境是虚拟环境的版本
第四步:检查venv下的django版本
第五步:添加已创建的虚拟环境venv的python解释器,至pycharm,用于创建1.98指定版本的django
第六步:成功启动1.98版本的django
Linux下安装virtualenv与virtualenvwrapper
一、Linux下安装、配置virtualenv
在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;
亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。
此时,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。
这里,就要隆重介绍 virtualenv,一个可以帮助我们管理不同 Python 环境的绝好工具。
virtualenv 可以在系统中建立多个不同并且相互不干扰的虚拟环境。
#指定清华源下载pip的包
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
#升级pip工具
pip3 install --upgrade pip
1.安装virtualenv
pip3 install virtualenv
2.创建目录
mkdir Myproject
cd Myproject
3.创建独立运行环境-命名
virtualenv --no-site-packages --python=python3 venv#得到独立第三方包的环境,并且指定解释器是python3
4.进入虚拟环境
source venv/bin/activate#此时进入虚拟环境(venv)Myproject
5.安装第三方包
(venv)Myproject: pip3 install django==1.9.8
#此时pip的包都会安装到venv环境下,venv是针对Myproject创建的
6.退出venv环境
deactivate命令
7.
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。
二、确保开发环境的一致性
1.假设我们在本地开发环境,准备好了项目+依赖包环境
2.现在需要将项目上传至服务器,上线发布
3.那么就要保证服务器的python环境一致性
解决方案:
1.通过命令保证环境的一致性,导出当前python环境的包
pip3 freeze > requirements.txt
这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。
可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。
2.上传至服务器后,在服务器下创建virtualenv,在venv中导入项目所需的模块依赖
pip3 install -r requirements.txt
三、虚拟环境之virtualenvwrapper
virtualenv
的一个最大的缺点就是: 每次开启虚拟环境之前要去虚拟环境所在目录下的 bin
目录下 source
一下 activate
,这就需要我们记住每个虚拟环境所在的目录。 并且还有可能你忘记了虚拟环境放在哪。。。
- 一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,例如/opt/all_venv/,并且针对不同的目录做不同的事。
- 使用virtualenvwrapper管理你的虚拟环境(virtualenv),其实他就是统一管理虚拟环境的目录,并且省去了source的步骤。
步骤1:安装virtualenvwrapper
pip3 install virtualenvwrapper
步骤2:设置Linux的环境变量,每次启动就加载virtualenvwrapper
把下面两行代码添加到 ~/.bashrc文件中
打开文件
vim ~/.bashrc
写入以下几行代码
export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=''--no-site-packages'' #添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3 #指定python解释器
source /opt/python36/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本
读取文件,使得生效,此时已经可以使用virtalenvwrapper
source ~/.bashrc
步骤3:基本使用virtualenvwrapper
创建一个虚拟环境:
$ mkvirtualenv my_django115
这会在 ~/Envs 中创建 my_django115 文件夹。
在虚拟环境上工作:激活虚拟环境my_django115
$ workon my_django115
再创建一个新的虚拟环境
$ mkvirtualenv my_django2
virtualenvwrapper 提供环境名字的tab补全功能。
当有很多环境, 并且很难记住它们的名字时,这就显得很有用。
workon还可以任意停止你当前的环境,可以在多个虚拟环境中来回切换
workon django1.15
workon django2.0
也可以手动停止虚拟环境
deactivate
删除虚拟环境,需要先退出虚拟环境
rmvirtualenv my_django115
步骤四:常用其他命令
lsvirtualenv
列举所有的环境。
cdvirtualenv
导航到当前激活的虚拟环境的目录中,比如说这样您就能够浏览它的 site-packages 。
cdsitepackages
和上面的类似,但是是直接进入到 site-packages 目录中。
lssitepackages
显示 site-packages 目录中的内容。
完整官网介绍:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html


学习运维架构技术乃王道
1.Nginx高可用负载均衡/缓存、限流/提升集群处理并发能力
2.mysql主从复制,读写分离
3.redis缓存加速与主从复制,哨兵,集群
4.异步消息/服务解耦之rabbitMQ消息队列
5.代码层优化/改进算法/多线程与内存优化
6.使用golang,Erlang等csp并发编程语言
7.docker容器时代
服务器介绍:
1.路飞的7台阿里云,腾讯云,亚马逊云,华为云
数据都放在其他人的电脑上,安全性由别人掌控
2.公司有钱,有26台Dell实体服务器,vmware esxi虚拟化的300+Linux
公司有钱,自建机房(盖了一个厂房,里面专业托管服务器)
有专业的公司,建造机房(世纪互联)
机房都是有严格的标准,保护机器不断电,不损坏
1.无静电
2.无尘
3.无湿度
4.低温
Linux发行部:
Linux是一个名词,是系统的代表
1.红帽子公司 redhat Linux 收费
-2045之前,外企
-红帽Linux 资格认证证书
rhcsa 红帽系统管理员
rhce 红帽工程师
rhca 红帽构架师
2.centos 免费版,社区版 centos7
3.Ubuntu 乌班图系统
4.suse 德国 Linux 收费
保证开发环境的一致性
1.手动解决
2.自动化解决
3.通过docker镜像
4.通过vmware系统模板镜像
Linux网络连接方式
桥接:
在一个局域网内,添加了一个新的机器
vmware就像是虚拟化的一个机房的服务器
远程连接
1.使用ssh命令
2.获取服务器的ip地址
3.window的xshell中输入:ssh root@192.168.0.101 远程连接Linux机器
Linux重要的目录
bin目录 有关bin的文件夹都是存放可执行文件的
etc目录存放配置文件的 /etc/my.conf /etc/nginx.conf /etc/redis.conf
配置文件就是定制一堆参数,自己控制的参数
opt目录 存放第三方软件的安装路径的 /opt/redis /opt/nginx /opt/python36
root目录 存放超级用户的家目录
var目录 存放系统日志相关
Linux目录结构的操作
cd - 上一次的工作目录
cd ~ 当前登录用户的家目录
cd . 当前目录
cd .. 上一级目录
绝对路径:一切从根目录开始,就是一个绝对路径
相对路径:以当前位置为相对,找到路径
PATH变量是用于,当用户直接输入命令的时候,去查找的一个路径寻找点
当我们输入ls的时候,Linux回去PATH中寻找,哪里有ls
Linux命令学习:
ssh root@192.168.0.101
1.查看ip地址
ip a
ifconfig
2.linux目录分割是正斜杠/
3.w 那些用户在登录
4.whoami 我是谁
5.pwd 我在哪
6.更改目录
cd /
7.用于输出文件夹的内容
ls
ll
ls -a 查看隐藏文件
ls -la
ls -lh 带文件大小
8.linux文件的颜色
浅蓝是软链接目录
蓝色是文件夹
白色是普通文件
绿色是可执行文件
9.创建目录
mkdir
mkdir -p ./a/b/c/d
mkdir -p ./bubu/{linux,python}
10.创建文件
touch
11.vi/vim写入内容
a.此时进入了命令模式,输入键盘的i,进入编辑模式
b.编辑模式下可以写入代码
c.退出编辑模式按下Esc,此时就进入了底线命令模式
d.输入:wq!
:进入底线模式
w 写入
q 退出
!强制的
底线命令模式 :set nu 显示行号
12.cat查看写入cat >>ceshi.txt <<EOF
[root@localhost /tmp/bubu 00:19:28]#cat >>ceshi.txt <<EOF
> ceshi
> 123
> EOF
[root@localhost /tmp/bubu 00:20:02]#cat ceshi.txt
ceshi
[root@localhost /tmp/bubu 00:20:09]#
cat /etc/passwd > ./passwd.txt 将/etc/passwd的内容写入到当前passwd.txt文件中
13.创建新用户
useradd bubu
passwd bubu
14.切换用户
su bubu
15.删除
rmdir 删除空文件夹
rm -rf * == rm -rf ./* 强制删除当前目录的所有内容
rm -rf /* 删除根(作死)
-f递归删除文件夹
-r强制性删除
-i提示性操作,是否删除
16.ctrl+c 中断当前操作
17.which ls
18.echo $PATH
19.hostname 查看主机名
20.hostnamectl set-hostname localhost
21.logout 退出重新登录查看
22.Linux命令提示符
[root@localhost ~]#
23.修改命令提示符
PS1变量控制
[root@localhost ~]# echo $PS1
[\u@\h \W]\$
修改命令提示符:
PS1=''[\u@\h \w \t]\$''
24.软件时间date,硬件时间hwclock
ntpdate -u ntp.aliyun.com
25.clear
26.history
27.yum install tree -y 安装树状图命令
28.tree mysite/
29.echo 写入文件内容
echo ''hello'' > ./test.txt
> 重定向覆盖写入符
>> 追加
30.拷贝 cp 目标文件 拷贝后的文件
cp my.py my.py.bak
31.重命名命令,以及移动命令
mv 旧文件名 新文件名
mv 目标文件 移动后的路径
mv ../tmp/ceshi/txt ./
32.find 查找文件
find / -name test.txt 从根目录开始找,一个叫做test.txt的文件
find /opt -name ''*.py'' 从/opt目录下查找所有的.py文件
linux 管道符“|” 语法就是将第一条命令的结果传给第二条
33.过滤出python有关的进程
ps -ef | grep python
34.过滤出22端口的信息
netstat -tunlp| grep 22
35.过滤命令grep
grep nobody ./passwd.txt 从当前的passwd.txt文件中过滤出nobody的信息
grep all settings.py 过滤出django中settings.py 中allow_hosts的信息
grep all settings.py -n 过滤出allow_hosts的信息且输出行号
grep -v all settings.py 过滤出除allow_hosts之外的信息
grep -v all settings.py -n 过滤出除allow_hosts之外的信息且输出行号
cat settings.py | grep allow
36.head
head -5 test.txt
37.tail
tail -5 test.txt
tail -f test.txt 实时监控
37.alias别名
alias rm="rm -i"
alias rm="echo 求求你了,你可别坑我了!!!"
38.unalias rm 取消别名
39.远程传输文件,在两台Linux上
scp 想要操作的文件地址 存放的目标文件地址
scp test.txt root@192.168.0.109:/tmp/
scp -r a root@192.168.0.109:/tmp/ -r递归传输文件夹
40.查看文件夹大小
方式1:ls -lh
方式2:du -h
du -sh /var/log/
-s 合计文件夹大小
-h 显示友好的单位换算
41.top命令(任务管理器)用于动态地监视进程活动和系统负载等信息 q退出
42.wget 下载
wget -r -p http://www.luffycity.com
43.Linux和window互相传递文件
1.lrzsz
sz test.txt(下载 从Linux传给window)
rz test.txt(上传)
2.xftp
44.reboot 重启
45.poweroff 关闭系统
46.free -m 查看内存
47.man grep 查看grep的帮助手册
48.防火墙
iptables -L #查看规则
iptables -F #清空防火墙规则
永久关闭防火墙,可能防火墙会阻挡你的Linux环境配置实验,为了方便,关闭它。
systemctl stop firewalld #关闭防火墙服务
systemctl disable firewalld #永久关闭,开机自启
49.tar -xf Python-3.6.2.tgz 解压
50.logout 退出账号
#######################################################################
用户权限相关
[root@localhost ~]# id #返回用户的身份信息,当uid为0的时候,这个用户就是超级用户
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost ~]# id root
uid=0(root) gid=0(root) groups=0(root)
用户的存放文件:
/etc/passwd
/etc/shadow 存放用户密码的文件
用户的管理命令:
添加普通用户(只有root用户有这个权利)
[root@localhost ~]# useradd tom #创建用户,这个用户的信息会存放到/etc/passwd
[root@localhost ~]# grep tom /etc/passwd #查看用户信息,普通用户的id默认是从1000开始的
tom:x:1001:1001::/home/tom:/bin/bash
[root@localhost ~]#
修改普通用户的密码
passwd 用户名
切换用户(必须加上中横线- 代表完全用户切换)
[root@localhost ~]# su - tom
[tom@localhost root]$
添加用户组
groupadd it_dep
删除用户
userdel -rf tom
-f 强制删除用户
-r 同事删除用户以及家目录
sudo命令用来以其他身份来执行命令,预设的身份为root
1.编辑sudoers配置文件,添加tom用户信息
vim /etc/sudoers (/查找root n查找下一个)
2.定位权限设置到
root ALL=(ALL) ALL
添加
root ALL=(ALL) ALL
tom ALL=(ALL) ALL
3.使用sudo命令,去执行Linux命令,解决权限不足
[tom@localhost ~]$ ls /root
ls: cannot open directory /root: Permission denied
[tom@localhost ~]$ sudo ls /root
[sudo] password for tom:
anaconda-ks.cfg
4.sudo还提供了一个语法检测的命令 visudo
文件权限:
读取(vim) 查看(cat) 执行(xx.py xx.sh)
通过解释器执行 ./xx.sh 或者 source xx.sh 或者 . xx.sh
文件夹的权限:
新增 修改 删除 进入目录
Linux软链接创建注意用绝对路径
ln -s 目标文件绝对路径 软链接绝对路径
tar命令,参数
-x 解压
-v 显示压缩解压过程
-f 指定压缩文件
-z 指定调用gzip命令
-c 压缩当前目录的所有内容:
-r 添加文件到已有的压缩文件中
tar -rf alltmp.tgz 新加的文件名
压缩当前目录的所有内容:
tar -cf alltmp.tgz ./*
tar -cf alltmp.tgz *
tar -cf alltmp.tar *
tar -zcf alltmp.tar.gz *
解压到当前目录
tar -xf alltmp.tgz
查看命令帮助:
tar --help
man tar
linum 中文手册
进程查看
ps -ef 查看所有进程的状态
ps -ef | grep python
网络端口管理命令
netstat -tunlp | grep 8000
kill命令 杀死进程
kill pid (pid通过ps -ef 查看)
一次性杀死多个匹配的进程,一个是pkill,一个是killall,
如果没有killall就安装一下 yum install psmisc -y
killall python
查看磁盘空间
df -h
Linux的dns服务相关
1.dns服务指定配置文件,这个文件,告诉Linux去那解析dns域名,
有主备两个dns服务器ip地址
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
domain www.tendawifi.com
search www.tendawifi.com
nameserver 192.168.0.1
[root@localhost ~]#
2.Linux解析dns的命令
nslookup www.baidu.com #解析到这个域名对应的ip地址
3.Linux强制dns,或者本地dns域名解析
vim /etc/hosts
ip 自定义的域名
4.域名解析的流程,(一个域名从浏览器访问,解析过程是如何的)
1.浏览器输入域名,浏览器首先会去当前机器的本地dns缓存中查找记录
2.去hosts文件中查找是否写死了对应的记录
3.去指定的dns服务器中寻找dns记录,如果找到了域名解析记录后
4.将这个dns记录缓存到本机的缓存记录中
5.下一次寻找域名,就去缓存中找
Linux的计划任务,也叫做定时任务,名字是crond
1.查看Linux本机的定时任务
crontab -l #查看计划任务
2.编写自己的计划任务
crontab -e #编辑计划任务
分时日月周 命令绝对路径
* * * * * /user/bin/echo "666" >> /tmp/ceshi.txt
Linux系统服务管理命令
系统服务(Linux安装的软件名)
只有通过yum安装的软件才可以使用这个命令
systemctl 这是centos7系列的命令
service 这是centos6系统的服务管理命令
查看网络状态
systemctl status network
查看发行版
cat /etc/os-release


pip3是管理python模块的工具,自动解决模块依赖
pip3 list
pip3 install flask 默认是去python官方下载,网速很慢
更改pip下载的源,加速下载,使用离咱们近的豆瓣源,163源或者清华源
pip3 install -i https://pypi.douban.com/simple flask
Linux安装软件包
rpm手动安装
yum工具自动化安装 效果等同于 pip3
1.理解yum源(阿里云的yum源 epel额外仓库)
yum源仓库的位置:cd /etc/yum.repos.d/,并且只能读出第一层的repo文件
yum仓库的文件都是以.repo结尾的
2.下载阿里云的.repo仓库文件,放到/etc/yum.repos.d/
第一步:备份原本的仓库文件
cd /etc/yum.repos.d/
mkdir allbak
mv * allbak
1.下载第一个阿里云仓库文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
-O 参数,指定一个下载地址,且改名
2.配置第二个仓库文件 epel 额外仓库(redis,nginx,mongo,ipython)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
3.清空原本yum缓存
yum clean all
4.生成新的阿里云的yum缓存,加速下载预热数据(此步骤非必须)
yum makecache
代码:
1.cd /etc/yum.repos.d/
2.mkdir allbak
3.mv * allbak
4.wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
5.wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
6.yum clean all
7.yum makecache
yum安装nginx:
1.yum install nginx -y
2.systemctl start/restart/stop nginx
3.netstat -tunlp | grep 80 查看端口,过滤80端口的信息
4.iptables -F (清空防火墙规则)
5.客户端:192.168.0.101:80 访问
/usr/share/nginx/html/index.html
yum remove nginx


编译安装python3
1.切换opt目录(这是一个约定)
cd /opt
2.下载python3的源代码
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
3.安装python前的库环境,非常重要
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
4.解压缩python3的源代码压缩文件
cd /opt/ 进入存在这个文件的目录
tar -xf Python-3.6.2.tgz 解压
5.cd Python-3.6.2/ 进入源代码目录下,准备开始编译安装
6.编译安装三部曲
第一曲:
cd Python-3.6.2/
#configure 这个脚本文件,只是为了释放makefile,用于指定python3安装到哪里
./configure --prefix=/opt/python36 --with-ssl
--prefix 这个参数用于指定python安装的路径
第二曲:
执行make开始编译python3.6的源代码
make
第三曲:
make install 生成/opt/python36
(第二曲和第三曲可以写成 make && make install)
7.配置环境变量
echo $PATH #$PATH是有优先级顺序的
将/opt/python36/bin/放入环境变量,注意要添加到path的最前面
#变量的赋值只是临时有效
PATH="/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
#将这个参数,写入到Linux的全局变量配置文件中
vim /etc/profile #打开这个全局变量文件,写入PATH="/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"到文件最后
8.退出(logout),重新加载全局变量.
9.which python3 确认是否正确安装
10.不要将系统默认的python 改成python3 这是一个大坑。
(因为Linux有很多工具,默认是用的python2,例如yum)
11.在Linux下安装django程序
pip3 install -i https://pypi.douban.com/simple django==1.11.16
pip3 install django==1.11.16
pip3 list
12.使用django命令创建项目
[root@localhost ~]# cd /opt
[root@localhost opt]# django-admin startproject mysite
13.修改mysite的settings.py中的ALLOWED_HOSTS
vim /opt/mysite/mysite/settings.py #/查找
ALLOWED_HOSTS = ["*"]
14.启动项目
[root@localhost opt]# cd mysite/
[root@localhost mysite]# python3 manage.py runserver 0.0.0.0:9999
补充:
python3的管理工具是pip3 install flask
python2的是easy_install flask
[root@localhost ~]# python -V
Python 2.7.5
[root@localhost ~]# python --version
Python 2.7.5
[root@localhost ~]# python3 --version
Python 3.6.2
[root@localhost ~]# pip3 list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
Django (1.11.16)
pip (9.0.1)
pytz (2019.2)
setuptools (28.8.0)
You are using pip version 9.0.1, however version 19.2.3 is available.
You should consider upgrading via the ''pip install --upgrade pip'' command.
[root@localhost ~]#


virtualenv 是python解释器的分身
它是基于物理解释器,进行一个解释器分身,这个分身,可以用于运行各种python开发环境,
并且创建简单,删除销毁也简单,解决环境依赖灾难。
1.安装虚拟环境
pip3 install -i https://pypi.douban.com/simple virtualenv
2.通过virtualenv创建虚拟环境
mkdir /opt/allenv #建立统一管理目录
cd /opt/allenv #进入统一管理目录
virtualenv --no-site-packages --python=python3 venv1 #建立虚拟环境venv1
--no-site-packages 创建一个干净隔离的python环境
--python=python3 基于python3创建虚拟环境
venv1 虚拟环境文件夹的名字,自己定义
3.激活虚拟环境
cd /opt/allenv
通过source命令,读取激活脚本,激活虚拟环境
source /opt/allenv/venv1/bin/activate
4.激活虚拟环境后,检查以下几个步骤,是否正确激活
which pip3
which python3
5.检查虚拟环境是否干净隔离
pip3 list
6.退出虚拟环境的命令
deactivate
[root@localhost ~]# pip3 install -i https://pypi.douban.com/simple virtualenv
[root@localhost ~]# cd /opt
[root@localhost opt]# mkdir allenv
[root@localhost opt]# cd allenv
[root@localhost allenv]# virtualenv --no-site-packages --python=python3 venv1
Running virtualenv with interpreter /opt/python36/bin/python3
Already using interpreter /opt/python36/bin/python3
Using base prefix ''/opt/python36''
New python executable in /opt/allenv/venv1/bin/python3 # 这个就是虚拟环境venv1的python3解释器
Also creating executable in /opt/allenv/venv1/bin/python
Installing setuptools, pip, wheel...
done.
[root@localhost allenv]#
[root@localhost allenv]# ls
venv1
[root@localhost allenv]# cd venv1
[root@localhost venv1]# ls
bin include lib
[root@localhost venv1]# cd bin
[root@localhost bin]# ls
activate activate.fish activate_this.py easy_install pip pip3.6 python3 python-config
activate.csh activate.ps1 activate.xsh easy_install-3.6 pip3 python python3.6 wheel
[root@localhost bin]# source activate
(venv1) [root@localhost bin]#
(venv1) [root@localhost bin]# which pip3
/opt/allenv/venv1/bin/pip3
(venv1) [root@localhost bin]#
(venv1) [root@localhost bin]# pip3 list
Package Version
---------- -------
pip 19.2.3
setuptools 41.2.0
wheel 0.33.6
(venv1) [root@localhost bin]# which python3
/opt/allenv/venv1/bin/python3
(venv1) [root@localhost bin]#
(venv1) [root@localhost bin]# echo $PATH
/opt/allenv/venv1/bin:/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
(venv1) [root@localhost bin]# pip3 install -i https://pypi.douban.com/simple django==2.0
确保开发环境的一致性:
解决方案:
1.通过命令保证环境的一致性,导出当前python环境的包
pip3 freeze > requirements.txt
这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。
可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。
2.上传至服务器后,在服务器下创建virtualenv,在venv中导入项目所需的模块依赖
pip3 install -r requirements.txt


虚拟环境之virtualenvwrapper:
1.因为virtualenv工具使用并不方便
2.安装virtualenvwrapper
pip3 install virtualenvwrapper
3.设置Linux的环境变量,每次启动就加载virtualenvwrapper
1.打开文件
vim ~/.bashrc (这个文件是用户个人配置文件)
2.写入以下几行代码 (export和source一样都是读取Linux shell 变量的命令)
export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=''--no-site-packages'' #添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3 #指定python解释器
source /opt/python36/bin/virtualenvwrapper.sh #这一步才是真正使用工具的步骤,执行virtualenvwrapper安装脚本
3.退出当前会话,重新登录Linux
logout
4.重新登录,查看是否可以使用virtalenvwrapper
5.确保可以使用后,学习这个工具的命令
1.创建新的虚拟环境
mkvirtualenv django201
mkvirtualenv django115
2.切换不同的虚拟环境
workon django201
workon django115
3.退出虚拟环境
deactivate
4.删除虚拟环境
rmvirtualenv django116
5.进入虚拟环境的家目录(直接进入到 site-packages 目录中)
cdsitepackages
6.列举所有的环境。
lsvirtualenv
7.显示 site-packages 目录中的内容。
lssitepackages


运行crm
1.准备代码
2.上传代码到Linux中
方式1:lrzsz(只能传单个的文件,必须是压缩包)
yum install lrzsz -y # 安装传输工具
sz test.txt(下载 从Linux传给window)
rz test.txt(上传)
方式2:xftp
3.解压
unzip crm.zip
4.用之前建好的虚拟环境去运行 :
workon django201
5.启动
python3 /opt/crm/manage.py runserver 0.0.0.0:9000
上面第四步也可以新建虚拟环境去运行 :
1.mkvirtualenv myblog
2.解决环境依赖,少什么装什么
pip3 install -i https://pypi.douban.com/simple django==2.0
pip3 install -i https://pypi.douban.com/simple pymysql
pip3 install -i https://pypi.douban.com/simple django-multiselectfield [multiselectfield模块]
3.安装Linux的mysql数据库
在centos7中,mysql叫mariadb 安装mariadb的服务端和客户端
yum install mariadb-server mysql -y
4.启动mariadb数据库
[root@localhost ~]# systemctl start mariadb
5.检查数据库是否正常(下面几种方式都可以)
ps -ef|grep mariadb
netstat -tunlp |grep 3306
systemctl status mariadb
6.看settings的配置,DATABASES,ALLOWED_HOSTS
7.建数据库,导入数据
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# mysql -uroot -p
MariaDB [(none)]> create database myblog;
MariaDB [(none)]> use myblog;
MariaDB [myblog]> source /opt/myblog.sql;
MariaDB [myblog]> show databases;
8.运行
python3 /opt/myblog/manage.py runserver 0.0.0.0:9000


运行路飞学城
1.下载代码
路飞学城django代码
wget https://files.cnblogs.com/files/pyyu/luffy_boy.zip
vue代码
wget https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip
2.解压
unzip 07-luffy_project_01.zip
unzip luffy_boy.zip
3.先从后端代码开始,进入后端代码文件夹
4.新建虚拟环境
mkvirtualenv luffy
5.解决所需的依赖模块,准备一个模块版本文件:requirements.txt 这个文件可以手动创建写入如下依赖
(luffy) [root@localhost opt]# cd /opt/luffy/luffy_boy
(luffy) [root@localhost luffy_boy]# touch requirements.txt
(luffy) [root@localhost luffy_boy]# vim requirements.txt
##############################
certifi==2018.11.29
chardet==3.0.4
crypto==1.4.1
Django==2.1.4
django-redis==4.10.0
django-rest-framework==0.1.0
djangorestframework==3.9.0
idna==2.8
Naked==0.1.31
pycrypto==2.6.1
pytz==2018.7
PyYAML==3.13
redis==3.0.1
requests==2.21.0
shellescape==3.4.1
urllib3==1.24.1
uWSGI==2.0.17.1
##############################
(luffy) [root@localhost luffy_boy]# ls
api db.sqlite3 keys luffy_boy manage.py requirements.txt static templates
6.安装所需的依赖模块
(luffy) [root@localhost luffy_boy]# pip3 install -i https://pypi.douban.com/simple -r requirements.txt
7.看一看
pip3 list
8.运行
python3 manage.py runserver 0.0.0.0:8000 (注意端口得是8000,因为前端的vue发的就是8000)
9.新开一个终端开始前端(要在服务器上,编译打包vue项目,必须得有node环境)
1.准备node环境
下载node二进制包,此包已经包含node,不需要再编译
[root@localhost ~]# cd /opt
[root@localhost opt]# wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz
2.解压缩
[root@localhost opt]# tar -zxvf node-v8.6.0-linux-x64.tar.gz
3.进入node文件夹
[root@localhost opt]# cd node-v8.6.0-linux-x64/
[root@localhost node-v8.6.0-linux-x64]# ls
bin CHANGELOG.md etc include lib LICENSE README.md share
[root@localhost node-v8.6.0-linux-x64]# cd bin
[root@localhost bin]# ls
node npm npx
[root@localhost bin]# pwd
/opt/node-v8.6.0-linux-x64/bin
4.配置环境变量
[root@localhost bin]# vim /etc/profile
PATH="/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/node-v8.6.0-linux-x64/bin"
5.读取全局配置文件,加载node的环境变量
[root@localhost bin]# source /etc/profile #就不需要退出重新加载了
[root@localhost bin]# echo $PATH
/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/node-v8.6.0-linux-x64/bin
[root@localhost bin]# which node
/opt/node-v8.6.0-linux-x64/bin/node
6.检测node环境
[root@localhost bin]# node -v
v8.6.0
[root@localhost bin]# npm -v
5.3.0
[root@localhost bin]#
【注意】进入vue代码包中,开始进行打包,注意修改vue的api请求接口地址!!
【注意】进入vue代码包中,开始进行打包,注意修改vue的api请求接口地址!!
【注意】进入vue代码包中,开始进行打包,注意修改vue的api请求接口地址!!
7.修改src/restful/api.js中Axios的请求地址 ##里面的127.0.0.1都换成你后端服务器的id地址 192.168.0.101
[root@localhost ~]# sed -i "s/127.0.0.1/192.168.0.101/g" /opt/luffy/07-luffy_project_01/src/restful/api.js ##全局替换命令
8.进入vue目录(安装vue模块,默认去装package.json的模块内容,如果出现模块安装失败,手动再装)
[root@localhost bin]# cd /opt/luffy/07-luffy_project_01/
[root@localhost 07-luffy_project_01]# ls
build config index.html package.json package-lock.json README.md src static
[root@localhost 07-luffy_project_01]# npm install
[root@localhost 07-luffy_project_01]# ls #增加了node_modules
build config index.html node_modules package.json package-lock.json README.md src static
9.打包vue项目,生成一个dist静态文件夹
[root@localhost 07-luffy_project_01]# npm run build
10.检查dist文件夹
[root@localhost 07-luffy_project_01]# ls
build config dist index.html node_modules package.json package-lock.json README.md src static #增加了dist
[root@localhost 07-luffy_project_01]# ls dist
index.html static
11.只需要将vue的静态文件,发布到web我放弃,访问web服务器即可。
12.安装配置nginx web服务器,访问到vue的静态文件
[root@localhost ~]# yum install nginx -y
[root@localhost ~]# systemctl start nginx
[root@localhost ~]# netstat -tunlp|grep nginx
[root@localhost ~]# find / -name index.html # 192.168.0.101 看到的就是这个页面/usr/share/nginx/html/index.html
[root@localhost ~]# vim /etc/nginx/nginx.conf
###################
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /opt/luffy/07-luffy_project_01/dist; ##更改这的路径
#root这个参数代表定义网页根目录,只要访问Nginx,Nginx就去这个根目录下寻找一个index.html的文件
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
###################
12.重启nginx服务才能生效
[root@localhost ~]# systemctl restart nginx
13.添加课程数据是存放到redis中的,需要安装redis
yum install redis -y
14.启动redis
[root@localhost ~]# systemctl start redis
[root@localhost ~]# netstat -tunlp |grep 6379
[root@localhost ~]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> FLUSHDB #手动清除数据
OK
127.0.0.1:6379> keys *
15.测试
http://192.168.0.101
我们今天的关于virtualenv 问题 - 无法激活和激活virtualenv环境的分享就到这里,谢谢您的阅读,如果想了解更多关于bash – 激活virtualenv的问题、Centos7 虚拟环境 virtualenv 与 virtualenvwrapper 的安装及基本使用、Linux下virtualenv与virtualenvwrapper详解、Linux下安装virtualenv与virtualenvwrapper的相关信息,可以在本站进行搜索。
本文标签: