问题背景:在ubuntu16.04上进行安装flask框架的时候,在激活virtualenv的时候,系统报错ImportError:No module named zlib,如下图所示:
于是在网上看了很多资料,也进行了zlib的安装,但是在python2下仍然报错,而在python3中已经正常安装。网上的资料多数都是给出命令进行操作就可以,但是在不同的计算机环境下,命令执行不一定成功,还是需要看一下技术文档。
virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。virtualenv功能很强大,在Ubuntu下安装此应用:
$ sudo apt-get install python-virtualenv
virtualenv安装完毕后,你可以立即打开shell 然后创建你自己的环境。我通常创建一个项目文件夹,并在其下创建一个venv 文件夹。
#python2使用此命令
$ mkdir myproject
$ cd myproject
$ virtualenv venv
New python executable in venv/bin/python
Installing distribute............done.
现在,无论何时你想在某个项目上工作,只需要激活相应的环境。在 OS X 和 Linux 上,执行如下操作:
$ . venv/bin/activate
无论通过哪种方式,你现在应该已经激活了virtualenv(注意你的shell 提示符显示的是当前活动的环境)。
现在你只需要键入以下的命令来激活virtualenv 中的Flask:
$ pip install Flask
#python3使用以下命令
mkdir myproject && cd myproject
python3 -m venv env
# or `virtualenv env` for Python 2
source env/bin/activate
pip install flask
在my_project文件夹中创建一个python文件hello.py内容如下
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "hello world"
if __name__ == "__main__":
app.run()
然后运行hello.py
python hello.py
在浏览器中输入
127.0.0.1:5000
就可以看到hello world了。
因为python2和python3同时存在的时候,只要其中一个版本中安装了zlib,就可以使用含有zlib版本的python,进行virtualenv安装,进一步安装flask。
我在搭建flask的时候,一直在纠结ImportError:No module named zlib,一直想要解决这个问题,但是就是在python2上安装不上zlib,多次编译python2也不起作用,最后就是用含有zlib包的python3进行flask配置,最后成功了。可以看到达到目的的途経不止一个,有一些error,可以不用一直纠结,可以忽略,所以遇到问题的时候千万不要钻牛角尖,换一种思路,会达到预想不到的结果。