入门#
开发gevent需要能够从源代码安装gevent。见 从源安装 有关这方面的一般信息。
使用虚拟环境#
建议将gevent的开发副本安装到 virtual environment ;您可以使用 venv
与python 3一起分发的模块,或 virtualenv ,可能与 virtualenvwrapper .
对于要使用的每个Python实现和版本,您可能需要不同的虚拟环境。GEvent包括 tox 用于跨多个Python版本自动化测试过程的配置,但这可能很慢。
本文的其余部分将假定在独立的虚拟环境中工作,但通常不会在提示中显示这一点。创建虚拟环境的示例如下:
$ python3 -m venv gevent-env
$ cd gevent-env
$ . bin/activate
(gevent-env) $
正在安装依赖项#
要处理gevent,我们需要获取源代码,安装gevent的依赖项,包括测试依赖项,并将gevent安装为 editable install 使用PIP -e
选项(也称为 development mode ,这与跑步基本相同 python setup.py develop
)
获取源意味着克隆git存储库:
(gevent-env) $ git clone https://github.com/gevent/gevent.git
(gevent-env) $ cd gevent
安装gevent的依赖项、测试依赖项和gevent本身可以通过安装 dev-requirements.txt
文件::
(gevent-env) $ pip install -r dev-requirements.txt
警告
此PIP命令不适用于PIP 19.1。使用PIP 19.0或更低版本,或使用PIP 19.1.1 --no-use-pep517
. 见 issue 1412 .
做出改变#
当添加新特性(函数、方法、模块)时,一定要提供docstring。docstring应该以Sphinx的结尾 versionadded directive ,使用版本字符串“NEXT”。在发布过程中,此字符串将自动替换为正确的版本。
例如:
def make_plumbus(schleem, rub_fleeb=True):
"""
Produces a plumbus.
:param int scheem: The number of schleem to use.
Possibly repurposed.
:keyword bool rub_fleeb: Whether to rub the fleeb.
Rubbing the fleeb is important, so only disable
if you know what you're doing.
.. versionadded:: NEXT
"""
当一个已经发布的特性已经被发布时,已经对现有特性进行了适当的更改 versionchanged 或 deprecated 指令,也使用“NEXT”。
def make_plumbus(schleem, rub_fleeb=True):
"""
Produces a plumbus.
:param int schleem: The schleem to use.
Possibly repurposed.
:keyword bool rub_fleeb: Whether to rub the fleeb.
Rubbing the fleeb is important, so only disable
if you know what you're doing.
:return: A :class:`Plumbus`.
.. versionadded:: 20.04.0
.. versionchanged:: NEXT
The *rub_fleeb* parameter is ignored; the fleeb
must always be rubbed.
"""
def extract_fleeb_juice():
"""
Get the fleeb juice.
.. deprecated:: NEXT
Extracting fleeb juice now happens automatically.
"""