CENTOS 使用ANSIBLE 将PYTHON 包安装到VIRTUALENV环境中

使用root用户,则直接安装

pip: name=pkgname virtualenv=虚拟环境目录

如果以!root用户安装,ansible无法获取virtualenv可执行文件,需要手动将执行路径添加到PATH环境变量,在用户家目录的.local/bin目录下

environment:
      PATH: "{{ansible_env.PATH}}/{{ansible_user_dir}}/.local/bin"

完整实例:

tasks:
  - name: install pip packages
    pip: name={{item}} virtualenv=envdir
    with_items:
      - requests
      - flask
    environment:
      PATH: "{{ansible_env.PATH}}/{{ansible_user_dir}}/.local/bin"

mac上配置使用virtualenv

1.安装virtualenv

$ sudo pip install virtualenv

2.安装virtualenvwrapper

$ sudo easy_install virtualenvwrapper 

3.新建一个放置虚拟环境的目录

$ mkdir ~/workspaces
$ cd ~/workspaces

4.设置环境变量

$ export WORKON_HOME=~/workspaces
$ source /usr/local/bin/virtualenvwrapper.sh

5.创建1-n个虚拟环境

$ mkvirtualenv env1
$ mkvirtualenv env2

成功后,路径前面会有(env2)

列出所有虚拟环境:

$ workon

切换到某个虚拟环境:

$ workon env1

退出虚拟环境:

$ deactivate

删除虚拟环境:

$ rmvirtualenv env2

切换到某个虚拟环境上之后,再使用pip在当前环境下进行安装

$ workon env1
$ pip install numpy

注意,每次进入虚拟环境前,都要先配置环境变量:

$ cd ~/workspaces
$ export WORKON_HOME=~/workspaces
$ source /usr/local/bin/virtualenvwrapper.sh
$ workon env1

启动虚拟环境后,pycharm配置项目的interpreter,找到对应虚拟环境下的python文件,比如:

~/workspaces/env1/bin/python2.7

virtualenv 指定 python 解释器的版本

使用如下命令为 ubuntu 系统安装 virtualenv

sudo apt-get install python-virtualenv

当我们使用 virtualenv 命令创建虚拟环境时,默认使用的 python 解释器为 /usr/bin/python27(然后创建该解释器对应的副本),那么我们该如何指定解释器的版本呢?

使用参数 -p

$ sudo virtualenv -p ~/anaconda3/bin/python test

Python虚拟环境工具Virtualenv的安装与使用

简介

Virtualenv可以为Python提供独立的运行环境,在一定程度上可解决解决依赖、版本以及间接权限等问题。

安装

使用pip命令安装:

$ [sudo] pip install virtualenv  

或使用

$ [sudo] pip install https://github.com/pypa/virtualenv/tarball/master  

安装最新版本。

使用

创建虚拟环境

$ virtualenv venv  

目前版本默认不使用全局Python安装的库,即参数–no-site-packages。如果要继承全局Python的库,则

$ virtualenv --system-site-packages venv  

指定Python的解释器:

$ virtualenv -p /usr/bin/python3.5  venv  

激活虚拟环境

使用前,需要先激活虚拟环境

source venv/bin/activate  

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

退出虚拟环境

(ENV)$ deactivate  

删除虚拟环境

退出虚拟环境后,在终端输入命令:

(ENV)$ deactivate  
$ rm -r /path/to/ENV  

PS:

Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替virtualenv。

python多环境管理工具virtualenv

系统环境

CentOS 7

安装

通过pip直接安装
pip install virtualenv

使用示例

# 在/usr/local/下面创建一个virtualenv目录,作为多环境管理用目录
mkdir /usr/local/virtualenv

# 进入上面创建的目录
cd /usr/local/virtualenv

# 创建一个名为env1的python环境(这里没加参数,该命令其实有很多参数可用)
virtualenv env1

# 执行之后,目录下会创建一个env1目录,如果想切换到env1环境下,则执行一下命令
source env1/bin/activate

使用扩展包

为了更简便的切换和管理virtualenv环境,可以借助virtualenvwrapper扩展包

安装扩展包

pip install virtualenvwrapper

配置环境变量,可在/etc/profile里添加如下指令

# 指定工作空间,可以自己随意创建
WORKON_HOME=/usr/local/virtualenv
# /usr/bin/virtualenvwrapper.sh是安装扩展包后生成的,不同的系统可能生成的文件路径不同
source /usr/bin/virtualenvwrapper.sh

常用命令

# 创建环境
mkvirtualenv [环境名]

# 切换到环境;后面不跟环境名,可以显示出所有环境
workon [环境名]

# 查看已有的环境
lsvirtualenv

# 查看当前环境中已安装的包
lssitepackages

# 退出当前环境
deactivate

python、virtualenv和virtualenvwrapper

简介

搭建不同版本的python环境,并且能够随意的创建、删除和管理,在不同的python环境下切换

安装环境

centos7.4、 VMware Workstation 14 Pro

安装步骤

1、查看现有的python环境

python -V

2、安装必要的工具

yum -y install zlib zlib-devel openssl-devel gcc

3、编译安装不同的python版本

1)安装python2.7.13

cd && wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz

tar -zxvf Python-2.7.13.tgz

cd Python-2.7.13

./configure --prefix=/usr/local/python2.7 && make -j 4 && make install

2)安装python3.6.3

cd && wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz

tar -zxvf Python-3.6.3.tgz

cd Python-3.6.3

./configure --prefix=/usr/local/python3.6 && make -j 4 && make install

4、安装配置virtualenv

easy_install pip 

(

如果没有 easy_install可下载安装 

wget https://bitbucket.org/pypa/setuptools/downloads/ez_setup.py && python ez_setup.py

)

pip install virtualenv

配置pip

cat << EOF  > /etc/pip.conf

[list]

format=columns

EOF

pip completion --bash >> ~/.bash_profile

5、安装配置virtualenvwrapper

pip install virtualenvwrapper

echo "export WORKON_HOME=~/test/venv" >>~/.bash_profile

source ~/.bash_profile

source virtualenvwrapper.sh

使用说明

1、创建python环境

mkvirtualenv -p /usr/local/python3.6/bin/python3.6 venv301

mkvirtualenv -p /usr/local/python2.7/bin/python2.7 venv201

2、查看python环境

lsvirtualenv

3、给所有python环境安装flask

allvirtualenv pip install flask

4、切换python环境

workon venv301

workon venv201

5、直接进入python环境的目录下

cdvirtualenv

6、退出python环境

deactivate

7、删除python环境

rmvirtualenv venv201

8、其它

钩子脚本,可自行查询相关内容

python virtualenv虚拟环境介绍

最近折腾tensorflow的编译安装,重新用virtualenv, 发现生疏了,就简单记录下吧

在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip安装到Python3的site-packages目录下。

如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?

这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。

首先,我们用pip安装virtualenv:

$ pip3 install virtualenv

然后,假定我们要开发一个新的项目,需要一套独立的Python运行环境,可以这么做:

第一步,创建目录:

Mac:~ $ mkdir myproject
Mac:~ $ cd myproject/
Mac:myproject michael$

第二步,创建一个独立的Python运行环境,命名为venv:

Mac:myproject  $ virtualenv --no-site-packages venv
Using base prefix '/usr/local/.../Python.framework/Versions/3.4'
New python executable in venv/bin/python3.4
Also creating executable in venv/bin/python
Installing setuptools, pip, wheel...done.

命令virtualenv就可以创建一个独立的Python运行环境,我们还加上了参数–no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。

新建的Python环境被放到当前目录下的venv目录。有了venv这个Python环境,可以用source进入该环境:

Mac:myproject michael$ source venv/bin/activate
(venv)Mac:myproject michael$

注意到命令提示符变了,有个(venv)前缀,表示当前环境是一个名为venv的Python环境。

下面正常安装各种第三方包,并运行python命令:

(venv)Mac:myproject michael$ pip install jinja2
...
Successfully installed jinja2-2.7.3 markupsafe-0.23
(venv)Mac:myproject michael$ python myapp.py
...

在venv环境下,用pip安装的包都被安装到venv这个环境下,系统Python环境不受任何影响。也就是说,venv环境是专门针对myproject这个应用创建的。

退出当前的venv环境,使用deactivate命令:

(venv)Mac:myproject michael$ deactivate 
Mac:myproject michael$

此时就回到了正常的环境,现在pip或python均是在系统Python环境下执行。

完全可以针对每个应用创建独立的Python运行环境,这样就可以对每个应用的Python环境进行隔离。

virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。

小结

virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。

使用virtualenv搭建Python下的Flask开发环境,ubu测试有效

Flask 依赖两个外部库:Werkzeug 和 Jinja2 。不过使用virtualenv就可以搞定这一切。

下面重点介绍一下环境搭建的步骤:

如果你在 Mac OS X 或 Linux 下,下面两条命令可能会适用:

$ sudo easy_install virtualenv

或更好的:

$ sudo pip install virtualenv

上述的命令会在你的系统中安装 virtualenv。它甚至可能会存在于包管理器中, 如果你用的是 Ubuntu,可以尝试:

$ sudo apt-get install python-virtualenv

virtualenv 安装完毕后,执行:

$ virtualenv venv
New python executable in venv/bin/python
Installing distribute............done.

现在,无论何时你想在某个项目上工作,只需要激活相应的环境。在 OS X 和 Linux 上,执行如下操作:

$ . venv/bin/activate

下面的操作适用 Windows:

$ venvscriptsactivate

无论通过哪种方式,你现在应该已经激活了 virtualenv(注意你的 shell 提示符显示的是当前活动的环境)。

现在你只需要键入以下的命令来激活 virtualenv 中的 Flask:

$ pip install Flask

几秒钟后,一切都搞定了。

然后deactivate退出当前环境。

Python Flask 框架 终极部署教程,超详细。Uwsgi+Nginx+mysql+Supervisor+Virtualenv, 基于阿里云默认Linux

我发现网上还没完整详细版本的Flask 部署教程,而我在部署中遇到很多坑,所以在这里写下来,完整的教程以下是部署流程:

处理本地的代码

假设你已经完成了项目的开发,本地已经安装了git,那么首先将你的代码提交到git;

#进项目根目录
pip freeze > requirements.txt  #导flask 全部包,方便新环境下一次性安装。
git init # 之前如果没有做,那么需要做
git add --all #提交所有修改后的文件
git remote add origin http:xxxx.git  #这一步如果之前没做,那么你需要做。
git commmit -w 'first commit'

安装Mysql

现在进入服务器正式开始搭建环境,首先安装mysql.

新鲜出炉的阿里云需要更新下apt.
apt-get update
然后安装mysql, 注意一定记住root 密码,还要在配置文件中设置字符为UTF8!
增加新的数据库,注意名字和你项目的一样,
create database xxx;

安装虚拟环境 Vitualenv

pip install virtualenvwrapper #直接安装虚拟环境容器来顺便安装virtualenv
注意需要先修改环境变量。否则命名无法使用
vim ~/.bashrc   在最底部增加
#这是为了让 WORKON 命令能用。
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

然后你需要用 mkvirtualenv xxx   来创建一个叫xxx 的python 虚拟环境
workon xxx #切换到你的虚拟环境
在这个环境里,你可以升级你的python 到python3, 当然根据你的需求。

安装 Git 拿到全部源码

现在在服务器上安装git 拿到源码
apt install git
git init
git remote add origin http:xxx.git
git pull origin master # 拿到全部源码

正式部署源码

进去项目根目录:
pip install -r requirements.txt  #导入你项目的flask 依赖
pip manager.py db migerate #初始化数据库  
# 这里如果出现初始化失败,那么清空你的 migration 文件夹,你会丢掉你的测试数据,当然有不丢的办法
pip manager.py db upgrade #导入数据库,代码迁移完成

安装Nginx

apt install nginx #安装nginx 
贴下配置文件位于: /etc/nginx/conf.d/xxx.conf
# 配置nginx与uwsgi的通信方式和名称,mysite就是名称
upstream xxx {
    # nginx使用socket的方式与uwsgi进行通信
    # 这里指向你项目的目录下的socket文件,
    # 这个socket文件不需要单独创建,在运行的时候会自动创建。
    server unix:///srv/xxx/xxx.sock;
}
# 配置服务器
server {
    # 监听的端口号
    listen 80;
    # 域名或者本机的ip地址
    server_name dev.wudizu.com 47.104.22.138;
    charset     utf-8;
    # 最大的上传大小
    client_max_body_size 75M;  
    # adjust to taste

    # 访问根目录下的任何url的配置
    location / {
        # 指定访问哪个upstream
        uwsgi_pass wudi;
        # 包括uwsgi参数的文件
        include     /etc/nginx/uwsgi_params;
    }
    location /static {
        alias /srv/xxx/static;
   }

}

安装Uwsgi

pip install uwsgi

贴下配置文件:


[uwsgi]
chdir           = /srv/xxx
# 模块
module          = firstweb   #注意这里一定要你写的flask 首页文件名
# python的虚拟环境
home            = /root/.virtualenvs/flask-py2

# 是否启用mater模式
master          = true

# 进程数
processes       = 10

# socket文件地址

socket          = /srv/xxx/xxx.sock

# wsgi文件

wsgi-file       = /srv/xxx/xxx.ini

# wsgi文件中的app变量

callable        = app

# socket文件的权限

chmod-socket    = 666

安装Supervisor

sudo pip install supervisor
# supervisor的程序名字
[program:mysite]
# supervisor执行的命令
command=uwsgi --ini mysite_uwsgi.ini
# 项目的目录
directory = /srv/xxx 
# 开始的时候等待多少秒
startsecs=0
# 停止的时候等待多少秒
stopwaitsecs=0# 自动开始
autostart=true
# 程序挂了后自动重启
autorestart=true
# 输出的log文件
stdout_logfile=/srv/xxx/log/supervisord.log
# 输出的错误文件
stderr_logfile=/srv/xxx/log/supervisord.err

[supervisord]
# log的级别
loglevel=info

# 使用supervisorctl的配置
[supervisorctl]
# 使用supervisorctl登录的地址和端口号
serverurl = http://127.0.0.1:9001

# 登录supervisorctl的用户名和密码
username = admin
password = 123

[inet_http_server]
# supervisor的服务器
port = :9001
# 用户名和密码
username = admin
password = 123

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface


然后使用supervisor运行uwsgi:
supervisord -c supervisor.conf

使用supervisorctl管理supervisord:supervisor是一个C/S模型,跟redis一样,有一个服务器,也有一个客户端命令用来管理服务的,使用以下命令进入到命令界面:
supervisorctl -c supervisor.conf

指定的文件必须和supervisord服务端保持一致。 一些常用的命令有:
supervisorctl -c supervisor.conf
> status    # 查看状态
> start program_name # 启动程序
> restart program_name # 重新启动程序
> stop program_name # 停止程序
> reload # 重新加载配置文件
> quit # 退出当前的客户端

Mac下安装Python虚拟环境Virtualenv

virtualenv官方文档对virtualenv的解释是:

virtualenv is a tool to create isolated Python environments.

virtualenv可以创建一个独立的 Python 环境,每个项目都可以有一个专属环境,避免了不同各种包安装冲突以及版本要求问题,可以让你更方便快捷的切换不同 Python 环境,更高效的开发。

pip是 Python 自带的包管理工具。

安装 virtualenv

$ sudo pip install virtualenv

测试virtualenv是否安装成功:

$ mkdir ~/Pyenv
$ cd ~/Pyenv
$ mkvirtualenv env1

安装 virtualenvwrapper

Virtaulenvwrapper是对virtualenv的封装,可以更方便地管理虚拟环境。

$ sudo easy_install virtualenvwrapper

第一次安装完成后需要,先设置WORKON_HOME,即环境的存储路径,并且运行source /usr/local/bin/virtualenvwrapper.sh

$ export WORKON_HOME=~/Pyenv
$ source /usr/local/bin/virtualenvwrapper.sh

把export命令和source命令加入到~/.bash_profile中,每次打开终端就无需初始化了。

$ vim ~/.bash_profile
$ export WORKON_HOME=~/Pyenv
$ source /usr/local/bin/virtualenvwrapper.sh

创建虚拟环境

$ mkvirtualenv env2

环境创建之后,会自动进入该目录,并激活该环境,当前路径前面就会有 (env2)。

列出虚拟环境:

$ lsvirtualenv -b
env1
env2

切换虚拟环境:

$ workon env1

查看环境里安装了哪些包:

$ lssitepackages

复制虚拟环境:

$ cpvirtualenv env1 env3
Copying env1 as env3...

退出虚拟环境:

$ deactivate

删除虚拟环境:

$ rmvirtualenv env2
Removing env2...

至此,Python虚拟环境Virtualenv安装流程完毕,你可以在你自己的虚拟环境下随意安装各种包,不同项目间也不会相互影响了。