Pip & Virtualenv & Fabric & Scrapy & PIL & BeautifulSoup
来源:互联网 发布:山下智久退出news 知乎 编辑:程序博客网 时间:2024/04/29 02:55
下载一个IDE–Pycharm,自带环境管理,就不需要这么麻烦了…
部分转载自:廖雪峰的官方网站
- Mac OS X安装 Scrapy、PIL、BeautifulSoup
pip、virtualenv、fabric
- 这三个对Python项目部署非常便利。
- virtualenv 用来建立一个虚拟的python环境,一个专属于项目的python环境。用virtualenv 来保持一个干净的环境非常有用。
- pip 用来解决项目依赖问题。将项目所有依赖的第三方库写在一个requirements.txt 中用pip 批量安装。一般和virtualenv 配合使用,将所有包安装在virtualenv 的环境中。
- fabric 用来自动化远程部署项目,非常的方便。可以根据需要在本地、远程依次执行一系列shell 命令、程序等。比如从代码库更新代码,执行数据迁移脚本,重启服务进程,完成自动化的部署。
pip
- pip 是一个安装和管理 Python 包的工具 , 是 easy_install 的一个替换品。本文将详细说明 安装 pip 的方法和 使用 pip 的一些基本操作如安装、更新和卸载 python 包。
- distribute是setuptools的取代(Setuptools包后期不再维护了),pip是easy_install的取代。
- pip的安装需要setuptools 或者 distribute,如果你使用的是Python3.x那么就只能使用distribute因为Python3.x不支持setuptools。
Windows下安装pip
- 下载地址:https://pypi.python.org/pypi/pip
- 下载源码那个文件
- cmd进解压文件夹,输入python setup.py install
- 添加环境变量C:\Python27\Scripts;
- 安装一些Python的包,比如Tornado这个web框架:在cmd命令行直接输 pip install tornado
- 或者直接可以在添加环境变量后用easy_install pip
- 其实Python安装后就已经自带pip安装工具了,不用安装
- 在环境变量里添加C:\Python27\Scripts;C:\Python34\Scripts;
- 最后一定要加上那个分号
- 如果不行的话,直接进pip的文件夹,pip install …
命令
- 安装特定版本的package,通过使用==, >=, <=, >, <来指定一个版本号。
- pip install ‘Markdown<2.0’
- pip install ‘Markdown>2.0,<2.0.3’
- 升级包到当前最新的版本,可以使用-U 或者 –upgrade
- pip install -U Markdown
- 卸载包
- pip uninstall Markdown
- 查询包
- pip search “multiprocessing”
- 列出安装的packages
- $ pip freeze
- 更新pip
- pip install –upgrade pip
- 显示当前已经安装的Package
- $ pip list
新版本的pip可能有问题
- 可以换回旧的版本
- Python现在都自带pip,不用自己安装
error:Microsoft Visual C++ 9.0 is required
- 彻底解决 error: Unable to find vcvarsall.bat
- windows上做Python开发,搭环境还真不比Linux容易。error: Unable to find vcvarsall.bat这个错误眼熟吧?
- 凡是安装和操作系统底层密切相关的Python扩展,几乎都会遇到这个错误。比如PIL, Pillow(两个图形库),greenlet以及其基础之上的eventlet, gevent微线程并发库等等。当然了有一些情况下,你不必彻底解决它,你可以选择windows版本,那么也就只能使用阉割版功能
- PIL有windows版,即使安装上了,64位Python一定报错 The _imaging C module is not installed, 除非自己重新编译安装。此外与CPU位数可能有关系,仅个人猜测。本人两个机器都是Win7旗舰版64位,安装的32位Python,其中一个CPU是64位的也遇到这个错误,32位的CPU则不报错。
- 为了解决64位CPU报错,于是安装Pillow的windows版,确实能正常使用,不再报错。但是图片效果极不理想,图片里面用到font就悲剧,出个验证码的图片都难以辨认。
- greenlet也可以安装windows版,有可能报错加载动态链接库失败,比如”ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。“不幸我也遇到了。
- 去下载安装VS2010(08版貌似也行,不过没必要用旧版,指不定哪个库又无法编译),给个地址(百度的云盘 国内应该速度可以)
- http://pan.baidu.com/share/link?shareid=1609273194&uk=3255422755
- 然后注意这一步很重要:命令行下执行 SET VS90COMNTOOLS=%VS100COMNTOOLS%
- 如果你安装的是 2012 版 SET VS90COMNTOOLS=%VS110COMNTOOLS%
- 如果你安装的是 2013版 SET VS90COMNTOOLS=%VS120COMNTOOLS%
- 或者更暴力,直接配置系统环境变量 VS90COMNTOOLS指向 %VS你的版本COMNTOOLS%
- 你还可以更暴力,在“..python安装路径…\Lib\distutils目录下有个msvc9compiler.py找到243行
- toolskey = “VS%0.f0COMNTOOLS” % version 直接改为 toolskey = “VS你的版本COMNTOOLS”(这个就是为什么要配 ”VS90COMNTOOLS“ 的原因,因为人家文件名都告诉你了是 Microsoft vc 9的compiler, 代码都写死了要vc9的comntools,就要找这个玩意儿,找不到不干活)
- 这么做的理由是Python2。7 扩展包是可以用08版或者更高的VS编译的,其setup.py(安装脚本)都是去windows系统寻找08版的VS,所以设置VS90的path
- 如果Python版本小于2.7,强烈建议使用 VS08版,用2010或者更高可能部分扩展不好使。给个例子:
- http://stackoverflow.com/questions/6551724/how-do-i-point-easy-install-to-vcvarsall-bat 这个例子说明 VS2010不适合Python2.6
- 3.安装VS后该重启的重启,clean一下之前安装Python扩展失败的残留文件,然后 直接下载 pil pillow greenlet eventlet等源码,解压后python setup.py build发现都可以编译了。接下来就换成 python setup.py install安装吧。
- 下面是MinGW的方法
- 首先安装MinGW,在MinGW的安装目录下找到bin的文件夹,找到mingw32-make.exe,复制一份更名为make.exe;
- 把MinGW的路径添加到环境变量path中,比如我把MinGW安装到D:\MinGW\中,就把D:\MinGW\bin添加到path中;
- 打开命令行窗口,在命令行窗口中进入到要安装代码的目录下;
- 输入如下命令就可以安装了。
- setup.py install build –compiler=mingw32
- 最简单的方法
- 去这个网站
- 下载lxml的文件,解压到当前文件夹
- 复制到Python27\Lib
virtualenv
- 以下部分是Python 2.7 的旧版本教程
- virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够:
- 在没有权限的情况下安装新套件
- 不同应用可以使用不同的套件版本
- 套件升级不影响其他应用
- 在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip安装到Python3的Lib/site-packages目录下。
- 如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?
- 这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。
安装virtualenv
- pip install virtualenv
然后,假定我们要开发一个新的项目,需要一套独立的Python运行环境,可以这么做:
第一步,创建目录:
- $ mkdir myproject
- $ cd myproject/
第二步,创建一个独立的Python运行环境,命名为venv:
- $ 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进入该环境:
- $ source venv/bin/activate
- 注意到命令提示符变了,有个(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环境。
在虚拟环境安装Python套件
- Virtualenv 附带有pip安装工具,因此需要安装的套件可以直接运行:
- pip install [套件名称]
- 如果没有启动虚拟环境,系统也安装了pip工具,那么套件将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加上:
- export PIP_REQUIRE_VIRTUALENV=true
- 或者让在执行pip的时候让系统自动开启虚拟环境:
- export PIP_RESPECT_VIRTUALENV=true
如何直接使用sublime在虚拟环境中build?
- 根据网上的资料,编辑了sublime-project file,添加了如下代码:
"build_systems": [ { "name": "Run Tests", "working_dir": "/D/Other/flasky/flasky.sublime-project", "cmd": ["D/Other/flasky/venv/Scripts/activate/python.exe", "manage.py", "test"] } ]
- 然而并没有什么用。我的是windows操作系统,使用的是sublime text3.
- “working_dir”: “/D/Other/flasky/flasky.sublime-project”中的flasky.sublime-project多写了,删掉。
Virtualenvwrapper
- Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做:
- 将所有虚拟环境整合在一个目录下
- 管理(新增,删除,复制)虚拟环境
- 切换虚拟环境
- …
安装
- 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
Scrapy、PIL、BeautifulSoup
Scrapy
- 学习Python爬虫必须要使用的框架Scrapy,话不多说。
- pip install Scrapy
PIL
- pip install pil
错误信息
- Could not find a version that satisfies the requirement PIL (from versions: )
- No matching distribution found for PIL
- 解决方法
- Pillow is a maintained fork of PIL, so I recommend using Pillow. But you can’t have both installed at the same time.
- First, remove both PIL and Pillow.
- Then install Pillow with pip install pillow (although, depending on platform, you may need some prerequisites.
- Then make sure code is using from PIL import Image rather than import Image.
应用示例
import requests r = requests.get('http://i11.tietuku.com/a6ac3cea744bce33.jpg') from PIL import Image from StringIO import StringIO i = Image.open(StringIO(r.content)) i.show()
import requests r = requests.get('https://github.com/timeline.json') print(r.json()) print(r.content) print(type(r.text)) # Unicode print(type(r.json())) # dict print(r.encoding) payload = {'key1': 'value1', 'key2': 'value2'} r = requests.get("http://httpbin.org/get", params=payload) print(r.url)
0 0
- Pip & Virtualenv & Fabric & Scrapy & PIL & BeautifulSoup
- Mac OS X安装 Scrapy、PIL、BeautifulSoup
- Mac OS X安装 Scrapy、PIL、BeautifulSoup
- virtualenv、fabric 和 pip 是 pythoneer 的三大神器
- Mac OS X安装Scrapy、PIL和BeautifulSoup的方法
- 为什么说 virtualenv、fabric 和 pip 是 pythoneer 的三大神器?
- virtualenv、pip备忘
- 安装pip和virtualenv
- python2.7+pip+virtualenv
- pip virtualenv requirements
- Ubuntu安装pip virtualenv
- python pip安装 PIL
- python pip install pil
- virtualenv 配置scrapy
- python virtualenv 安装scrapy
- scrapy 结合 BeautifulSoup
- pip 与 virtualenv 的使用
- windows7安装python、pip、virtualenv
- 调用方法练习
- jquery 常用操作
- Hadoop YARN学习之Hadoop框架演进历史简述
- C++学习一 文件流读取
- 使用百度地图时出现com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache
- Pip & Virtualenv & Fabric & Scrapy & PIL & BeautifulSoup
- python_轻量级爬虫开发2
- android 选项卡界面
- 日期回显的格式的修改
- Codeforces 230A Dragons
- Python 解析配置模块之ConfigParser详解
- logback.xml实例
- JAVA对象JSON数据互相转换的四种常见情况
- 18. 4Sum