奥门巴黎人手机网址【app】

virtualenv创造虚构景况安装flask

2019-10-05 09:36·巴黎人线上开户

咱俩怎么必要选用虚构情状?

Python的包(或模块)的下载保存非常特别;一时候只怕会推动难题。

不等种类,Python模块的设置地点也区别样。举个例子,大比很多种类模块安装在 sys.prefix 境况变量内定的目录中,以Mac OS X为例:

科技世界 1

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

科技世界 2

上面举三个其实的事例来验证使用虚构景况的好处。

假诺你有八个Python项目-A和B,那多个档案的次序都亟待选拔同二个第三方模块-tensorflow。借使那多少个系列应用同样的tensorflow版本,大概不会有啥难点。

而是,当A和B项目选用区别的tensorflow版本时-A使用tensorflow 0.70本子;B使用tensorflow 0.80版本。由于Python导入模块无法分别模块版本,导致A、B无法利用tensorflow的两样版本,那在广大景况下是不能够经受的。

动用设想情形的另贰个益处是:保持开荒条件的精简、有序。

virtualenvwrapper

Virtualenvwrapper 是贰个Virtualenv 的extension,可使虚拟遭受的治本变得更便于。详细来讲,Virtualenvwrapper 提供下述功用:

科技世界,l  将有所的虚构情形整合在三个索引下。

l  处理(新添、移除、复制)全数的设想意况。

l  能够行使一个下令切换虚构情状。

l  Tab 补全虚构情状的名字。

l  每种操作都提供允许使用者自定的hooks。

l  可撰写轻易享受的extension plugin 系统。

使用

    步入当前条件的site-packages目录:cdsitepackages [子目录名]

设想碰着的做事原理

第一就是操作意况变量。

Python在非设想碰到下的不二等秘书籍:

1
2
$which python
/usr/bin/python

激活虚构情状再一次查看Python路线:

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

$PATH 景况变量在激活前后不等同了:

1
2
3
4
5
6
$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系统遭逢变量。

正文永远更新链接地址:http://www.linuxidc.com/Linux/2017-04/143114.htm

科技世界 3

总结

依照virtualenv + virtualenvwrapper能够很好的做到景况隔开分离,保障对各种应用的景况是根本的。並且对一个根本的条件能够通过:

pip freeze > requirements.txt将包重视新闻保存在requirements.txt文件

pip install -r requirements.txt会自动从网络下载并设置具备包

有利使用计划分发,关于pip软件包管理再下一篇介绍。

 

连锁连接:

高雅的行使python之情状管理 缘起 情景 1 :差别 python 版本的管理同一Computer上的多少个 python 版本...

总结

故事virtualenv + virtualenvwrapper能够很好的成功境况隔断,保险对每一个应用的条件是干净的。並且对三个干净的境况足以透过:

pip freeze > requirements.txt将包重视消息保存在requirements.txt文件

pip install -r requirements.txt会自行从网络下载并安装具备包

方便利用计划分发,关于pip软件包管理再下一篇介绍。

 

连带连接:

$ sudo pip install virtualenv

安装virtualenv、pyvenv

若是你利用Python 2,你能够行使pip安装virtualenv:

1
$sudo pip install virtualenv

若是你选择Python 3,它暗许安装了pyvenv。

virtualenv和pyvenv的选择格局类似。由于pyvenv是较新的工具,本帖以它为例。

创立叁个存放设想境况的目录:

1
2
$mkdirpython-env
$cdpython-env

开创三个设想情况:

 

1
$pyvenv env_A

地点命令在当前目录成立了env_A目录,目录结构:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
├──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:

 

1
$source env/bin/activate

提示符中包蕴:

 

1
(env_A)$

现行反革命你通过pip安装的包都会设置这些设想遭遇中;导入(import)模块时也只能选取这些虚构境遇中的模块。

只要要退出env_A设想境况,实行:

 

1
(env_A)$deactivate

安装

通过pip或者easy_install安装virtualenvwrapper

pip install virtualenvwrapper

暗中同意virtualenvwrapper安装在/usr/local/bin下边,实际上你须要周转virtualenvwrapper.sh文件才行。

 

说明:virtualenvwrapper is a set of shell functions defined in Bourne shell compatible syntax。所以在window平台下,是还是不是行使持续的,可是对应该多个virtualenvwrapper-win版本(

virtualenvwrapper-win将安装在python根目录下边,如D:\Python34。

# using pip

pip install virtualenvwrapper-win

 

# using easy_install

easy_install virtualenvwrapper-win

 

# from source

git clone git://github.com/davidmarble/virtualenvwrapper-win.git

cd virtualenvwrapper-win

python setup.py install

 

安装

方式一:通过pip

[sudo] pip install virtualenv

方法二:源码格局

下载、解压

cd virtualenv-X.X

[sudo] python setup.py install

方式N…

virtualenv --python=/usr/local/bin/python2 venv

怎样是Python设想境况?

Python虚构情状可认为品种成立互相独立的支付情形,也便是你可以为每一种品种设置各自行使正视模块。

选择设想情状能够很好的缓慢解决上面A、B项目遭遇的主题素材:为A、B项目各自创造设想景况,然后在独家的虚构情形中设置不一样的tensorflow版本。

使用虚构意况须求借助virtualenv或pyvenv,它们的应用特轻便。

高雅的施用python之碰到管理,python意况管理

大雅的选取python之情形管理

开创虚构景况

virtualenv [虚拟环境名称] /virtualevn.exe [虚拟环境名称]

本人的条件是windows python3.4,那样成立虚构情形:

E:\>D:\Python34\Scripts\virtualenv.exe env_py3.4

Using base prefix 'D:\\Python34'

New python executable in env_py3.4\Scripts\python.exe

Installing setuptools, pip...done.

成立设想情形env_py3.4之后,对应目录上边有以下文件夹:

E:\env_py3.4 的目录

2014/11/26  15:38    <DIR>          .

2014/11/26  15:38    <DIR>          ..

2014/05/16  15:34    <DIR>          Include

2014/11/26  15:38    <DIR>          Lib

2014/11/26  15:38    <DIR>          Scripts

内部Lib/site-packages包蕴了,从系统装置的python3.4底下的库。暗中认可景况下,设想景况会借助系统蒙受中的site packages,就是说系统中一度设置好的第三方package也会设置在虚构意况中,要是不想借助那些package,那么能够增添参数 --no-site-packages建构虚构境况

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

 

[root@localhost ~]``# pip install virtualenvwrapper

使用

缘起

此情此景1:差别python版本的保管

未有差距于Computer上的七个python版本在此以前的管住,为了出色难题的普及存在,下边是有人在segmentfault上提的标题。

科技世界 4

摘自:

现象2:同一python版本中同样库的不等版本管理

比方在python2.7下应用A是依照Django1.6,应用B是依据Django1.7的,这种情况怎么管理。

为化解以上难题,上边隆重介绍下virtualenv、virtualenvwrapper。

$ sudo easy_install virtualenv

创制虚构情形

virtualenv [虚拟环境名称] /virtualevn.exe [虚拟环境名称]

小编的条件是windows python3.4,那样制造虚构情状:

E:\>D:\Python34\Scripts\virtualenv.exe env_py3.4

Using base prefix 'D:\\Python34'

New python executable in env_py3.4\Scripts\python.exe

Installing setuptools, pip...done.

开创虚构情状env_py3.4之后,对应目录上边有以下文件夹:

E:\env_py3.4 的目录

2014/11/26  15:38    <DIR>          .

2014/11/26  15:38    <DIR>          ..

2014/05/16  15:34    <DIR>          Include

2014/11/26  15:38    <DIR>          Lib

2014/11/26  15:38    <DIR>          Scripts

中间Lib/site-packages包括了,从系统安装的python3.4底下的库。默许情状下,设想处境会借助系统意况中的site packages,正是说系统中早就设置好的第三方package也会安装在虚构境况中,假诺不想依靠那一个package,那么可以加上参数 --no-site-packages创建设想情形

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

 

使用

virtualenvwrapper-win和virtualenvwrapper的选择方式完全等同:

l  列出虚构碰到列表:workon 或许lsvirtualenv

l  新建虚构蒙受:mkvirtualenv [设想景况名称]

l  运营/切换虚构情状:workon [设想际遇名称]

l  删除虚构景况:rmvirtualenv [虚构意况名称]

l  离开设想情形:deactivate.

诸如,小编创设了3个设想情状

       …….

(vn_py3.4_app2) D:\Python34>mkvirtualenv.bat vn_py3.4_app3

Using base prefix 'D:\\Python34'

New python executable in vn_py3.4_app3\Scripts\python.exe

Installing setuptools, pip...done.

 

(vn_py3.4_app3) D:\Python34>workon.bat

 

Pass a name to activate one of the following virtualenvs:

==========================================================

vn_py3.4_app1

vn_py3.4_app2

vn_py3.4_app3

暗中认可成立的设想境遇路线为:%USERPROFILE%\Envs,即C:\Users\用户名\Envs。

切换设想意况:

(vn_py3.4_app3) D:\Python34>workon.bat vn_py3.4_app1

(vn_py3.4_app1) D:\Python34>workon.bat vn_py3.4_app2

(vn_py3.4_app2) D:\Python34>

 

介怀:假使window下边遭逢D:\Python34\Scripts>mkvirtualenv.bat F:\evn_py3.4_app1

python.exe: can't open file 'D:\Python34\Scripts\virtualenv-script.py': [Errno 2

] No such file or directory,修改mkvirtualenv.bat中的python.exe "%PYHOME%\Scripts\virtualenv-script.py" %ARGS% ==》python.exe "%PYHOME%\Scripts\virtualenv.exe" %ARGS%即可。

    virtualenvwrapper是virtualenv的庞大工具,能够低价的开创、删除、复制、切换分歧的设想景况。

启用虚构景况

 

 

source bin/activate或者 Scripts\activate.bat

启用虚拟境况之后,命令行提醒符将以设想情况名叫前缀,如(env_py3.4) E:\env_py3.4>。也得以透过python打字与印刷出os.sys.path进行求证,如在笔者的env_py3.4虚构情况启用现在,系统path路线如下所示:

E:\env_py3.4>Scripts\activate

(env_py3.4) E:\env_py3.4>python

Python 3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:24:06) [MSC v.1600 32 bit (In

tel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> import os

>>> print(os.sys.path)

['', 'E:\\env_py3.4\\Scripts\\python34.zip', 'E:\\env_py3.4\\DLLs', 'E:\\env_py3

.4\\lib', 'E:\\env_py3.4\\Scripts', 'D:\\Python34\\Lib', 'D:\\Python34\\DLLs', '

E:\\env_py3.4', 'E:\\env_py3.4\\lib\\site-packages']

从os.sys.path中能够看出,这么些条件下实践python相关的操作都以限制在虚构景况中。

virtualenv

摘自virtualenv官网的一段介绍:

“The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into/usr/lib/python2.7/site-packages (or whatever your platform’s standard location is), it’s easy to end up in a situation where you unintentionally upgrade an application that shouldn’t be upgraded.

Or more generally, what if you want to install an application and leave it be? If an application works, any change in its libraries or the versions of those libraries can break the application.

Also, what if you can’t install packages into the global site-packages directory? For instance, on a shared host.”

大意便是virtualenv用于在一台机械上创制多个单身的python运营意况,能够解决:

l  隔开分离项目里面包车型地铁第三方包重视

l  在并未权力的情况下安装新的Python软件包

而外,还只怕有贰个万分的功利:安顿应用时,把开拓条件的设想情形打包到生产条件就可以。

flask安装在virtualenv中pip install Flask即可  

退出虚构意况

 

bin/deactivate 或者 Scripts\deactivate

如退出env_py3.4虚构情形,命令行提示符前缀也呼应改动了。

(env_py3.4) E:\env_py3.4>Scripts\deactivate

E:\env_py3.4>

 

在虚构情况中装置新的python软件包,跟健康的python一样,况且设想情状中早就有意或是无意pip、easy_install等工具,能够丰硕便于的采取。

启用设想情形

 

 

source bin/activate或者 Scripts\activate.bat

启用虚构情形之后,命令行提醒符将以设想情形名称叫前缀,如(env_py3.4) E:\env_py3.4>。也得以由此python打字与印刷出os.sys.path进行认证,如在自个儿的env_py3.4设想景况启用现在,系统path路径如下所示:

E:\env_py3.4>Scripts\activate

(env_py3.4) E:\env_py3.4>python

Python 3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:24:06) [MSC v.1600 32 bit (In

tel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> import os

>>> print(os.sys.path)

['', 'E:\\env_py3.4\\Scripts\\python34.zip', 'E:\\env_py3.4\\DLLs', 'E:\\env_py3

.4\\lib', 'E:\\env_py3.4\\Scripts', 'D:\\Python34\\Lib', 'D:\\Python34\\DLLs', '

E:\\env_py3.4', 'E:\\env_py3.4\\lib\\site-packages']

从os.sys.path中得以见见,那个碰到下实行python相关的操作都是限量在虚构意况中。

[root@CentOS6 myproject]# cd env1/

缘起

情形1:分化python版本的管住

平等Computer上的多少个python版本此前的军管,为了优异难题的遍布存在,下边是有人在segmentfault上提的问题。

摘自:

情景2:同一python版本中一致库的不如版本管理

比如说在python2.7下应用A是遵照Django1.6,应用B是依据Django1.7的,这种景况怎么管理。

为赶尽杀绝上述难题,下边隆重介绍下virtualenv、virtualenvwrapper。

脱离设想情形

 

bin/deactivate 或者 Scripts\deactivate

如退出env_py3.4虚构情形,命令行提醒符前缀也应和改动了。

(env_py3.4) E:\env_py3.4>Scripts\deactivate

E:\env_py3.4>

 

在设想情状中设置新的python软件包,跟平常的python同样,并且虚构景况中早已过世意仍旧无意pip、easy_install等工具,能够十二分方便的利用。

注意:安装py3需要ln -s /usr/local/python35/bin/virtualenv /usr/bin/virtualenv

virtualenv

摘自virtualenv官网的

“The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into/usr/lib/python2.7/site-packages (or whatever your platform’s standard location is), it’s easy to end up in a situation where you unintentionally upgrade an application that shouldn’t be upgraded.

Or more generally, what if you want to install an application and leave it be? If an application works, any change in its libraries or the versions of those libraries can break the application.

Also, what if you can’t install packages into the global site-packages directory? For instance, on a shared host.”

马虎就是virtualenv用于在一台机械上创办五个独立的python运营情况,能够解决:

l  隔绝项目里面包车型地铁第三方包注重

l  在尚未权力的境况下安装新的Python软件包

除了这些之外,还也有一个十一分的裨益:安插应用时,把开垦条件的设想境况打包到生育环境就能够。

安装

通过pip或者easy_install安装virtualenvwrapper

pip install virtualenvwrapper

暗中认可virtualenvwrapper安装在/usr/local/bin下边,实际上你需求周转virtualenvwrapper.sh文件才行。

 

申明:virtualenvwrapper is a set of shell functions defined in Bourne shell compatible syntax。所以在window平台下,是或不是采用持续的,可是对相应一个virtualenvwrapper-win版本()。

virtualenvwrapper-win将安装在python根目录上面,如D:\Python34。

# using pip

pip install virtualenvwrapper-win

 

# using easy_install

easy_install virtualenvwrapper-win

 

# from source

git clone git://github.com/davidmarble/virtualenvwrapper-win.git

cd virtualenvwrapper-win

python setup.py install

 

Also creating executable in /home/myproject/env1/bin/python

安装

方式一:通过pip

[sudo] pip install virtualenv

艺术二:源码情势

下载、解压

cd virtualenv-X.X

[sudo] python setup.py install

方式N…

平淡的利用python之蒙受管理

 

使用

virtualenvwrapper-win和virtualenvwrapper的运用方法完全一致:

l  列出设想情状列表:workon 可能lsvirtualenv

l  新建设想情状:mkvirtualenv [设想情形名称]

l  运维/切换设想意况:workon [设想碰着名称]

l  删除虚构景况:rmvirtualenv [设想意况名称]

l  离开设想处境:deactivate.

例如,作者创制了3个虚构遭逢

       …….

(vn_py3.4_app2) D:\Python34>mkvirtualenv.bat vn_py3.4_app3

Using base prefix 'D:\\Python34'

New python executable in vn_py3.4_app3\Scripts\python.exe

Installing setuptools, pip...done.

 

(vn_py3.4_app3) D:\Python34>workon.bat

 

Pass a name to activate one of the following virtualenvs:

==========================================================

vn_py3.4_app1

vn_py3.4_app2

vn_py3.4_app3

私下认可创造的虚构情形路线为:%USERPROFILE%\Envs,即C:\Users\用户名\Envs。

切换虚构意况:

(vn_py3.4_app3) D:\Python34>workon.bat vn_py3.4_app1

(vn_py3.4_app1) D:\Python34>workon.bat vn_py3.4_app2

(vn_py3.4_app2) D:\Python34>

 

留意:尽管window下边遇到D:\Python34\Scripts>mkvirtualenv.bat F:\evn_py3.4_app1

python.exe: can't open file 'D:\Python34\Scripts\virtualenv-script.py': [Errno 2

] No such file or directory,修改mkvirtualenv.bat中的python.exe "%PYHOME%\Scripts\virtualenv-script.py" %ARGS% ==》python.exe "%PYHOME%\Scripts\virtualenv.exe" %ARGS%即可。

virtualenvwrapper

Virtualenvwrapper 是贰个Virtualenv 的extension,可使设想遭遇的管制变得更易于。详细来讲,Virtualenvwrapper 提供下述功能:

l  将兼具的虚构情形整合在二个目录下。

l  处理(新扩张、移除、复制)全部的虚拟情状。

l  能够应用二个发令切换设想情状。

l  Tab 补全虚构景况的名字。

l  每种操作都提供允许使用者自定的hooks。

l  可撰写轻松享受的extension plugin 系统。

    设置遭受变量,把下部两行增多到~/.bashrc里。

(env1)[root@localhost env1]# cdsitepackages
(env1)[root@localhost site-packages]# pwd
/root/workspaces/env1/lib/python2.6/site-packages
(env1)[root@localhost site-packages]# cdsitepackages pip
(env1)[root@localhost pip]# pwd
/root/workspaces/env1/lib/python2.6/site-packages/pip

Removing env2...

(env2)[root@localhost ~]# workon env1
(env1)[root@localhost ~]# echo $VIRTUAL_ENV
/root/workspaces/env1

    3.列出虚构境况:lsvirtualenv -b

    注意:mkvirtualenv能够应用virtualenv的参数,比如--python来内定python版本。创立设想蒙受后,会自行切换来此虚拟境况里。设想情状目录都在WO大切诺基KON_HOME里。