python拷贝虚拟环境不能运行_Python虚拟环境Virtualenv使用教程

virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够:

1. 在没有权限的情况下安装新套件

2. 不同应用可以使用不同的套件版本

3. 套件升级不影响其他应用

安装

复制代码 代码如下:

sudo apt-get install python-virtualenv

使用方法

[code]

virtualenv [虚拟环境名称]

如,创建**ENV**的虚拟环境

复制代码 代码如下:

virtualenv ENV

默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages建立虚拟环境

复制代码 代码如下:

virtualenv --no-site-packages [虚拟环境名称]

启动虚拟环境

复制代码 代码如下:

cd ENV

source ./bin/activate

注意此时命令行会多一个(ENV),ENV为虚拟环境名称,接下来所有模块都只会安装到该目录中去。

退出虚拟环境

复制代码 代码如下:

deactivate

在虚拟环境安装Python套件

Virtualenv 附带有pip安装工具,因此需要安装的套件可以直接运行:

复制代码 代码如下:

pip install [套件名称]

如果没有启动虚拟环境,系统也安装了pip工具,那么套件将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加上:

复制代码 代码如下:

export PIP_REQUIRE_VIRTUALENV=true

或者让在执行pip的时候让系统自动开启虚拟环境:

复制代码 代码如下:

export PIP_RESPECT_VIRTUALENV=true

Virtualenvwrapper

Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做:

1. 将所有虚拟环境整合在一个目录下

2. 管理(新增,删除,复制)虚拟环境

3. 切换虚拟环境

4. ...

安装

复制代码 代码如下:

sudo easy_install virtualenvwrapper

此时还不能使用virtualenvwrapper,默认virtualenvwrapper安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行,先别急,打开这个文件看看,里面有安装步骤,我们照着操作把环境设置好。

创建目录用来存放虚拟环境

复制代码 代码如下:

mkdir $HOME/.virtualenvs

在~/.bashrc中添加行: export WORKON_HOME=$HOME/.virtualenvs

在~/.bashrc中添加行:source /usr/local/bin/virtualenvwrapper.sh

运行: source ~/.bashrc

此时virtualenvwrapper就可以使用了。

列出虚拟环境列表

复制代码 代码如下:

workon

也可以使用

复制代码 代码如下:

lsvirtualenv

新建虚拟环境

复制代码 代码如下:

mkvirtualenv [虚拟环境名称]

启动/切换虚拟环境

复制代码 代码如下:

workon [虚拟环境名称]

删除虚拟环境

复制代码 代码如下:

rmvirtualenv [虚拟环境名称]

离开虚拟环境

复制代码 代码如下:

deactivate

------------------------------------------------------------------------------------------------------------------------------------------------------------

virtualenv通过创建独立Python开发环境的工具, 来解决依赖、版本以及间接权限

问题. 比如一个项目依赖Django1.3 而当前全局开发环境为Django1.7, 版本跨度过大, 导致不兼容使项目无法正在运行, 使用virtualenv可以解决这些问题.

virtualenv创建一个拥有自己安装目录的环境, 这个环境不与其他虚拟环境共享库, 能够方便的管理python版本和管理python库

1. 安装Virtualenv

使用pip安装Virtualenv, 使用过python的都应该知道pip包管理神器吧, 即使不知道, 网站也有大把的教程, 不过推荐查看官方安装指南

复制代码 代码如下:

$ pip install virtualenv

//或者由于权限问题使用sudo临时提升权限

$ sudo pip install virtualenv

2. virtualenv基本使用

现在开始使用virtualenv管理python环境

复制代码 代码如下:

➜  Test git:(master) ✗ virtualenv ENV  #创建一个名为ENV的目录, 并且安装了ENV/bin/python, 创建了lib,include,bin目录,安装了pip

New python executable in

Installing setuptools, pip...done.

➜  Test git:(master) ✗ cd ENV

➜  ENV git:(master) ✗ ll

drwxr-xr-x  14 andrew_liu  staff  476 12  8 08:49 bin

drwxr-xr-x   3 andrew_liu  staff  102 12  8 08:49 include

drwxr-xr-x   3 andrew_liu  staff  102 12  8 08:49 lib

lib,所有安装的python库都会放在这个目录中的lib/pythonx.x/site-packages/下

bin,bin/python是在当前环境是使用的python解释器

如果在命令行中运行virtualenv --system-site-packages ENV, 会继承/usr/lib/python2.7/site-packages下的所有库, 最新版本virtualenv把把访问全局site-packages作为默认行为

default behavior.

2.1. 激活virtualenv

复制代码 代码如下:

#ENV目录下使用如下命令

➜  ENV git:(master) ✗ source ./bin/activate  #激活当前virtualenv

(ENV)➜  ENV git:(master) ✗ #注意终端发生了变化

复制代码 代码如下:

#使用pip查看当前库

(ENV)➜  ENV git:(master) ✗ pip list

pip (1.5.6)

setuptools (3.6)

wsgiref (0.1.2) #发现在只有这三个

pip freeze  #显示所有依赖

pip freeze > requirement.txt  #生成requirement.txt文件

pip install -r requirement.txt  #根据requirement.txt生成相同的环境

2.2. 关闭virtualenv

使用下面命令

复制代码 代码如下:

$ deactivate

2.3. 指定python版本

可以使用-p PYTHON_EXE选项在创建虚拟环境的时候指定python版本

复制代码 代码如下:

#创建python2.7虚拟环境

➜  Test git:(master) ✗ virtualenv -p /usr/bin/python2.7 ENV2.7

Running virtualenv with interpreter /usr/bin/python2.7

New python executable in ENV2.7/bin/python

Installing setuptools, pip...done.

复制代码 代码如下:

#创建python3.4虚拟环境

➜  Test git:(master) ✗ virtualenv -p /usr/local/bin/python3.4 ENV3.4

Running virtualenv with interpreter /usr/local/bin/python3.4

Using base prefix '/Library/Frameworks/Python.framework/Versions/3.4'

New python executable in ENV3.4/bin/python3.4

Also creating executable in ENV3.4/bin/python

Installing setuptools, pip...done.

到此已经可以解决python版本冲突问题和python库不同版本的问题

3. 其他

3.1. 生成可打包环境

某些特殊需求下,可能没有网络, 我们期望直接打包一个ENV, 可以解压后直接使用, 这时候可以使用virtualenv -relocatable指令将ENV修改为可更改位置的ENV

复制代码 代码如下:

#对当前已经创建的虚拟环境更改为可迁移

➜  ENV3.4 git:(master) ✗ virtualenv --relocatable ./

Making script ./bin/easy_install relative

Making script ./bin/easy_install-3.4 relative

Making script ./bin/pip relative

Making script ./bin/pip3 relative

Making script ./bin/pip3.4 relative

3.2. 获得帮助

复制代码 代码如下:

$ virtualenv -h

当前的ENV都被修改为相对路径, 可以打包当前目录, 上传到其他位置使用

这并不能使虚拟环境跨平台使用

4. 参考链接

virtualenv官方文档  http://virtualenv.readthedocs.org/en/latest/virtualenv.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值