python vertualenv及Django入门搭建web应用程序

 

建立虚拟环境:

1.安装virtualenv: pip install --user virtualenv或sudo apt-get install python-virtualenv

2.创建目录ll_env: virtualenv ll_env

virtualenv ll_env --python=python3, 创建一个python3虚拟环境

--no-site-packages,已经安装到系统Python环境中的所有第三方包都不会复制过来

3.激活虚拟环境/关闭虚拟环境: source ll_env/bin/activate,  deactivate

在虚拟环境中,如果使用apt安装python package,仍然会安装到系统环境下,只有使用虚拟环境对应的pip才能安装到虚拟环境下.python2.7 venv使用pip,python3.5 venv使用pip3. 用pip list确认已安装的py包.

4.要删除一个虚拟环境,只需删除它的文件夹。(执行 rm -rf ll_env )

 

虚拟环境迁移

拷贝文件夹至其他目录:
进入.../bin/下修改activate文件中参数:

VIRTUAL_ENV="/home/venv"
export VIRTUAL_ENV

 

当需要将虚拟环境env转移到同一台电脑的另一个目录下时

或者当需要将虚拟环境env1迁移或复制到另一个虚拟环境(可能不在同一台机器上)env2时,首先仍然需要在目的机器上安装pip和virtualenv,然后采用以下方法之一安装其他的package:

1.直接将env1里的文件全部复制到env2里,然后修改涉及路径的文件。此种方法可能正常使用,但显然不是好办法(不过网络不好的时候lz就是用的这个)。

修改的路径主要是虚拟环境ubuntu_env/bin目录下的文件执行程序的路径:如active, pip, ipython等等(几乎所有文件的路径,不过有的命令你不用的可以不改)。

如将虚拟环境ubuntu_env/bin/active中的路径修改一下:

其中的VIRTUAL_ENV路径其实最好修改成现在的绝对路径VIRTUAL_ENV="/media/pika/files/mine/ENV/ubuntu_env";

将虚拟环境ubuntu_env/bin/pip和pip3和pip3.4中的路径修改成绝对路径:#!/home/pipi/ENV/ubuntu_env/bin/python3

注意最好不要将路径修改成相对路径。如果修改的ipython执行路径为相对路径#!./bin/python3,是相对这个ipython.py执行的路径,激活virtual env后如果在另一个目录下输入python就会出错找不到或者直接调用系统中的python了,而不是virtual env中的python,而原始的默认路径使用绝对路径就可以在virtual env激活后在任意目录都可以执行ipython而不出错!

 

2. 使用requirements.txt

进入原虚拟环境env1,然后执行pip freeze > requirements.txt将包依赖信息保存在requirements.txt文件中。

最好手动调整一下顺序,比如numpy和scipy要在matplotlib前面安装;另外如果想安装最新版本的,再将后面的版本号==1.9.1什么的删除。

然后进入目的虚拟环境env2,执行pip install -r requirements.txt,pip就会自动从网上下载并安装所有包。

虚拟环境env2如果是env1的拷贝,最好先pip uninstall -ry requirements.txt,再pip install -r requirements.txt


3.pip默认会从pypi服务器(http://pypi.python.org/simple)下载包的安装文件,如果目的机器无法连外网,则可以采用以下办法:
3.1搭建自己的pypi服务器。专业的,可以使用第三方的软件包来搭建一个完整的pypi镜像服务器,参考http://www.worldhello.net/2011/03/14/2357.html。更快速的方法只需要一条命令python -m SimpleHTTPServer即可完成搭建服务器,具体的目录结构可参考原pypi服务器,简而言之,就是把安装文件打包放入目录即可。搭建好服务器之后,在目的虚拟环境中,就可以使用pip来安装了,命令如:pip install -i http://127.0.0.1:8000/ -r requirements.txt
3.2如果你实在不想搭建pypi服务器,也有办法。首先将所有包的安装文件下载下来,可以手动下载,也可以使用pip,如pip install -d /path/to/save/ -r requirements.txt,然后自己修改requirements.txt文件,将每一行改成对应的包的安装文件的路径。最后在目的虚拟环境中使用pip安装,如pip install -r requirements.txt即可。

3.3还有一种途径,就是pip提供的bundle选项。首先执行pip bundle MyEnv.pybundle -r requirements.txt,将生成一个MyEnv.pybundle文件,该文件夹包含所有包的安装文件(注意必须后缀名必须是.pybundle),默认是重新从pypi服务器下载安装文件的,如果愿意,也可以利用3.1中的方法,指定本地的pypi服务器。然后在目的虚拟环境中执行pip install MyEnv.pybundle即可

所以说,lz还是更喜欢docker中配置的python开发环境。

虚拟环境迁移出错

方法1虚拟环境迁移后包引入出错

from scipy import stats

ImportError: liblapack.so.3: cannot open shared object

这时只需要pip install scipy重新安装一下就ok了。

ImportError: libBLT.2.4.so.8.6: cannot open shared object file: No such file or directory, please install the python3-tk package

也要重新安装matplotlib

所以最好使用方法2迁移。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值