如何使用Python kazoo库?

时间:2013-11-18 21:00:24

标签: python apache-zookeeper kazoo

我打算为Zookeeper使用Python kazoo库。这就是Python问题,而不是zookeeper,我想这意味着如何正确使用Python kazoo ..

我对python完全不熟悉,所以我不知道如何使用kazoo与zookeeper联系。

这是我正在阅读的文件,开始使用kazoo for Zookeeper。

http://kazoo.readthedocs.org/en/latest/install.html

在那个维基中,他们要求安装kazoo。他们正在使用一些pip命令吗?

pip在这做什么?我目前正在使用Windows,所以我安装了cygwin并安装了python。我使用的是Python 2.7.3

host@D-SJC-00542612 ~
$ python
Python 2.7.3 (default, Dec 18 2012, 13:50:09)
[GCC 4.5.3] on cygwin

现在我所做的是 - 我完全按照上面的网站pip install kazoo复制了这个命令,然后在我的cygwin命令提示符下运行它。

host@D-SJC-00542612 ~
$ pip install kazoo
Downloading/unpacking kazoo
  Running setup.py egg_info for package kazoo

    warning: no previously-included files found matching '.gitignore'
    warning: no previously-included files found matching '.travis.yml'
    warning: no previously-included files found matching 'Makefile'
    warning: no previously-included files found matching 'run_failure.py'
    warning: no previously-included files matching '*' found under directory 'sw'
    warning: no previously-included files matching '*pyc' found anywhere in distribution
    warning: no previously-included files matching '*pyo' found anywhere in distribution
Downloading/unpacking zope.interface>=3.8.0 (from kazoo)
  Running setup.py egg_info for package zope.interface

    warning: no previously-included files matching '*.dll' found anywhere in distribution
    warning: no previously-included files matching '*.pyc' found anywhere in distribution
    warning: no previously-included files matching '*.pyo' found anywhere in distribution
    warning: no previously-included files matching '*.so' found anywhere in distribution
Requirement already satisfied (use --upgrade to upgrade): distribute in c:\python27\lib\site-packages (from zope.interface>=3.8.0->kazoo)
Installing collected packages: kazoo, zope.interface
  Running setup.py install for kazoo

    warning: no previously-included files found matching '.gitignore'
    warning: no previously-included files found matching '.travis.yml'
    warning: no previously-included files found matching 'Makefile'
    warning: no previously-included files found matching 'run_failure.py'
    warning: no previously-included files matching '*' found under directory 'sw'
    warning: no previously-included files matching '*pyc' found anywhere in distribution
    warning: no previously-included files matching '*pyo' found anywhere in distribution
  Running setup.py install for zope.interface

    warning: no previously-included files matching '*.dll' found anywhere in distribution
    warning: no previously-included files matching '*.pyc' found anywhere in distribution
    warning: no previously-included files matching '*.pyo' found anywhere in distribution
    warning: no previously-included files matching '*.so' found anywhere in distribution
    building 'zope.interface._zope_interface_coptimizations' extension
    ********************************************************************************
    WARNING:

            An optional code optimization (C extension) could not be compiled.

            Optimizations for this package will not be available!
    ()
    Unable to find vcvarsall.bat
    ********************************************************************************
    Skipping installation of C:\Python27\Lib\site-packages\zope\__init__.py (namespace package)
    Installing C:\Python27\Lib\site-packages\zope.interface-4.0.5-py2.7-nspkg.pth
Successfully installed kazoo zope.interface
Cleaning up...

是否安装得当?现在我可以开始在python中编写代码来连接zookeeper吗?

很抱歉提出所有这些愚蠢的问题因为我没有python的任何背景所以在这里学习一点......

这一切都是关于Python的问题,而不是动物园管理员我猜...

1 个答案:

答案 0 :(得分:4)

pip是安装软件包的常用方法。它从pypi查询并下载包。 Kazoo已根据日志声明安装。试试看。

您应该可以在where python is installed\lib\site-packages\kazoo找到该套餐。

您应该尝试加载(导入)包而不会出错:

from kazoo.client import KazooClient

启动zookeeper之后。您的zookeeper配置将包含客户端端口详细信息。

tickTime=2000
dataDir=...../zookeeperdata/cluster/server1/data
clientPort=2181
initLimit=5

使用它连接到zookeeper。

# Create a client and start it
zk = KazooClient(hosts='127.0.0.1:2181')
zk.start()

# Now you can do the regular zookepper API calls
# Ensure some paths are created required by your application
zk.ensure_path("/app/someservice") 

# In the end, stop it
zk.stop()