周海汉 2011.6.8 2011.6.8 ablozhou#gmail.com
环境:win7 32位旗舰版,安装了python31和python26,但我想使用python26的版本。
问题:python egg 文件如何使用呢?python 组件如何安装?下面的文章解决这些问题。
1.为何要使用安装工具?
可以在使用python的包时更容易,方便下载,创建,依赖,安装,升级,卸载等的管理。
因为很多python的包采用蟒蛋(python egg)的方式发布。蟒蛋可以是压缩的或没有压缩的方式打的包。比如xml库lxml,python26的最新版win32的包为:lxml-2.3-py2.6-win32.egg,下载地址在http://pypi.python.org/pypi/lxml/2.3#downloads .egg文件并不能直接执行,必须依赖安装工具进行安装。
2.下载安装python安装工具
下载地址:http://pypi.python.org/pypi/setuptools 可以找到正确的版本进行下载。win7 32位可以下载setuptools-0.6c11.win32-py2.6.exe 。
注意:win7 64位必须使用ez_setup.py进行安装。方法是下载ez_setup.py后,在cmd下执行 python ez_setup.py,即可自动安装setuptools。目前没有直接的exe安装版本。
下载完成后双击执行安装文件,即可在c:python26scripts下安装easy_install。包含一个easy_install.exe,如果环境变量PATH设置正确,可以直接在命令行下执行easy_install package命令。下面有相应的示例。
3.安装lxml
没有安装lxml之前,执行import报错:
>>> import lxml
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
import lxml
ImportError: No module named lxml
在cmd中安装lxml
C:Userszhouhh.TKOFFICE>easy_install
install_dir C:Python31Libsite-packages
error: No urls, filenames, or requirements specified (see --help)
C:Userszhouhh.TKOFFICE>easy_install lxml
install_dir C:Python31Libsite-packages
Searching for lxml
Reading http://pypi.python.org/simple/lxml/
Reading http://codespeak.net/lxml
Best match: lxml 2.3
Downloading http://pypi.python.org/packages/3.1/l/lxml/lxml-2.3-py3.1-win32.egg#
md5=84f5d7d34176c2433abb2c7e833cf309
Processing lxml-2.3-py3.1-win32.egg
creating c:python31libsite-packageslxml-2.3-py3.1-win32.egg
Extracting lxml-2.3-py3.1-win32.egg to c:python31libsite-packages
Adding lxml 2.3 to easy-install.pth file
Installed c:python31libsite-packageslxml-2.3-py3.1-win32.egg
Processing dependencies for lxml
Finished processing dependencies for lxml
结果下载到python31下去了。 一看,原来path下缺省的是python31. C:Python31;C:Python31Scripts; 将其修改为python26 再执行同样的命令,即会正确安装相应的py26版本成功到python26下。
4.如果已下载有egg文件,应如何安装?
easy_install的命令格式,就是easy_install package
package可以是网络上的url,也可以是本地的。
C:Userszhouhh.TKOFFICE>easy_install E:downloadslxml-2.3-py2.6-win32.egg
Processing lxml-2.3-py2.6-win32.egg
creating c:python26libsite-packageslxml-2.3-py2.6-win32.egg
Extracting lxml-2.3-py2.6-win32.egg to c:python26libsite-packages
Adding lxml 2.3 to easy-install.pth file
Installed c:python26libsite-packageslxml-2.3-py2.6-win32.egg
Processing dependencies for lxml==2.3
Finished processing dependencies for lxml==2.3
这时,再执行import 正确。
>>> import lxml
>>>
5. 参考资料
python的pypi,即python package index,可以下载大部分的包。easy_install可以自动到相应网站寻找正确的版本,并解决依赖问题。
http://peak.telecommunity.com/DevCenter/EasyInstall
http://pypi.python.org/pypi/setuptools
http://pypi.python.org/pypi/lxml/2.3
可爱的 Python: 使用 setuptools 孵化 Python egg:
http://www.ibm.com/developerworks/cn/linux/l-cppeak3.html
如非注明转载, 均为原创. 本站遵循知识共享CC协议,转载请注明来源