我的玩具包展示了如何使用厨具。

my-toy-package的Python项目详细描述


====
我的玩具包
===



图片::https://img.shields.io/pypi/v/my嫒toy嫒u package.svg
:目标:https://pypi.python.org/pypi/my嫒toy嫒u package

……图片::https://img.shields.io/travis/francois durand/my嫒toy嫒u package.svg
:目标:https://travis ci.org/francois durand/my嫒toy嫒u package

图片::https://readthedocs.org/projects/my-toy-package/badge/?version=latest
:目标:https://my-toy-package.readthedocs.io/en/latest/?徽章=最新
:alt:文档状态

…图片::https://pyup.io/repos/github/francois durand/my廑toy廑u package/shield.svg
:target:https://pyup.io/repos/github/francois durand/my廑toy廑package/
:alt:updates

my toy package演示如何使用CookieCutter。

*免费软件:GNU通用公共许可证v3。
*文档:https://my toy package.readthedocs.io.

下面的演练是如何创建和维护您的python包的清单,特别是依赖于audrey roy greenfeld和pycharm的cookiecutter。我们还将使用github、readthedocs、pypi、travis ci和pyup。以下是它的工作原理。

*当您将修改推送到github时:

*travis ci会自动运行所有测试,并检查所有内容是否都在多个版本的python上工作
(例如3.5、3.6,3.7)。
*readthedocs自动生成文档并在线发布。

*当您在github上"标记"某个版本时,换句话说,当您"起草发布"时:travis ci不仅执行
测试,还生成包的分发文件并在pypi上发布它们。因此,
任何python用户都可以通过``pip install the_name_of_your_package```来安装您的包。

*通常,您的包依赖于其他包。pyup会在这些
第三方软件包的新版本发布时通知您。你在github中收到一个请求,travis ci检查一切正常,
您只需接受github中的拉取请求即可。

----
创建您的包
----


本节改编自:https://cookiecutter-pypackage.readthedocs.io/en/latest/tutorial.html.



==



确保您在:

*github、
*readthedocs、
*pypi、
*travis-ci、
*pyup上有帐户(最好使用相同的登录名)。_ github:https://github.com
。_阅读文档:https://readthedocs.org
…_ pypi:https://pypi.python.org/pypi
。_特拉维斯国际:https://travis ci.org
…_ PyUp:https://pyup.io


>在终端(如水蟒提示)::








在终端(如水蟒提示)::



pip install cookiecutter




;或者,如果您愿意的话:或者:如果您愿意的话:或者:如果您愿意的话:




>安装cookiecutter

>install git



===========





生成您的包
===

\您的项目将需要一个项目名称(例如,*my toy package*)和一个项目slug(通常是"my'u toy package")。
在开始之前,请检查您的项目slug是否未在pypi中使用。
。在终端中(例如水蟒提示):

。转到要放置包目录的父目录,例如``d:\ github\`.
。`` Cookiecutter https://github.com/audreyr/Cookiecutter pypackage.git``
回答问题。下面是一个例子(一些解释如下)::

full廑u name[audrey roy greenfeld]:franois durand
email[aroy@alum.mit.edu]:fradurand@gmail.com
github廑username[audreyr]:fracois durand
project廑name[python boilerplate]:my toy程序包
project_slug[my_toy_package]:
project_short_description[python样板c包含创建python包所需的所有样板文件。]:我的玩具包演示了如何使用cookiecutter。
pypi用户名[francois durand]:
版本[0.1.0]:
使用pytest[n]:y
使用pypi部署与travis[Y]:
添加Pyup徽标[N]:Y
选择命令行界面:
1-单击
2-没有命令行界面
从1、2[1]:2中选择
创建作者文件[Y]:
选择开放源代码许可证:
1-MIT许可证
2-bsd许可证
3-isc许可证
4-apache软件许可证2.0
5-gnu通用公共许可证v3
6-非开源
从1、2、3、4、5中选择,6[1]:5

如果您不熟悉
测试,我建议您使用doctest。但即便如此,pytest对于配置您的测试还是很有用的(稍后我们将做一些
)。因此,我的建议是回答"是"。
*``将pypi部署与travis一起使用`:当您将在github中执行一个*发布*时,travis将自动在pypi上发布您的包。
*``添加pyup徽章`:pyup徽章将出现在包的自述文件中。
*``单击``:这允许您使用unix风格的命令轻松调用您的程序,例如`python my`u program.py--help`
您可以回答yes,即使你暂时不使用它。但就我个人而言,我的回答是否定的。
*``创建作者文件'`:我建议回答是。


创建新项目。
在*location*中,获取项目的目录,例如"d:\ github\my_toy_package`"。验证。
。警告目录不为空:validate.
。菜单文件→设置→项目→项目解释程序。(对于苹果用户:pycharm→preferences→project→
项目解释器)。单击齿轮形状图标→添加。
。使用virtualenv填写表单:新环境。这个推荐的目录很好。验证。
。打开文件``.gitignore``(您可以在pycharm中这样做)。

添加以下行(例如,在文件末尾)::

pycharm project settings
。idea

。检查``venv``是否也被排除,即文件``.gitignore``中应该有一行``venv/```。


在pycharm中创建github repo
=====


。如果还没有注册,请在pycharm中注册您的github帐户:

。菜单文件→设置→版本控制→Github。
。单击"+"图标。
。填写表格并验证。菜单VCS→导入版本控制→在GitHub上共享项目。

。填写表单并验证,例如::


新存储库名称:my_toy_package
远程名称:origin
描述:my toy package显示如何使用CookieCutter。

在浏览器中,您可以转到Github帐户检查是否所有内容都在那里。如果没有,请在
pycharm:vcs→commit中执行初始提交…

n.b.:如果使用公共github存储库,则使用pypi是免费的(但不适用于私有存储库)。


确保您在包的目录中(例如``D:\ github\my_toy_package```)。
确保您的虚拟环境已激活:行的开头应该有`(venv)`'。如果不是:

windows:venv\scripts\activate
linux:source venv/bin/activate

。`` pip install-r requirements\u dev.txt``

>以"开发模式"安装包
现在,您的包的行为就好像安装了一样,但是您所做的任何更改都将立即生效。
在PyCharm终端中,您应该仍然在包的目录中,激活虚拟环境后。
执行:



设置travis ci
==


确保计算机上安装了travis cli。

*在Windows下:

。安装ruby(https://rubyinstaller.org/)。
。在PyCharm终端中,执行以下操作:``gem install-v travis--no rdoc--no ri``.

*在Debian下,以根用户身份运行:


apt get update
apt get install cookie cutter ruby ruby dev gcc
gem install-v travis--no rdoc--no ri

*在Ubuntu16下,运行:

sudo apt get install ruby dev
sudo gem install-v travis--no rdoc--no ri

在Travis网站上:

。使用github凭据登录。
。travis ci可能需要几分钟的时间来加载所有github回购协议的列表。它们将与回购名称左侧的
框一起列出,框中有一个x,这意味着它没有连接到Travis CI。
通过单击"我的玩具"回购旁边的框中的X将公共回购添加到您的Travis CI帐户。不要试图按照其他说明操作,这将在下一步处理。

在PyCharm终端中,确保您位于项目目录中,并且:


(用引号替换为实际密码)。

打开文件`.travis.yml``(您可以在pycharm中这样做)。

检查"deploy.password.secure"是否已编码。
。抑制行``-2.7``(除非您计划编写与Python2.7兼容的代码)。


在已阅读的DOCS网站上:

。param_tres→comptes liés.检查您的github帐户是否列在这里。
转到"我的项目"。导入项目→导入制造。填写表格并验证,例如::


my_toy_package
https://github.com/francois durand/my_toy_package
git

。管理→高级设置。

选中"installer votre projet dans un virtualenv via setup.py install"。
在"python解释器"中,选择"cpython 3.x"。在pycharm中,提交/推送,即:

。菜单VCS→提交。
。输入提交消息,例如"初始设置"。
提交→提交并推送。按下。

设置PYUP
==

在PYUP网站上:

。单击绿色的*添加回购*按钮,然后选择您创建的回购。
。出现一个弹出窗口。就我个人而言,我检查了第一个项目,并取消了其他两个项目的检查。

几分钟内,您可能会在github(和您的电子邮件)中收到拉取请求。

。在Github网站上:

。接受合并。
。删除分支。

在pycharm中,菜单vcs→update project。这将执行git更新(以使pyup完成修改)。

在github网站上,下载"我的玩具包"。在终端或文件资源管理器中:

。将"我的玩具包"和"我的玩具包"目录移动到项目的相应位置。将文件"my_toy_package\docs\reference"移到项目的相应位置。你可以扔掉你下载的其他文件。在pycharm中:

。右键单击您添加的文件。吉特添加。在"myclass1"文件中,将"my toy"包替换为包的名称。手动修改文件"myclass1"、"myclass2"和"myclass3"中的版权声明。
在"reference"文件中,将"my_toy_package"替换为包的名称。在"index.rst"文件中,在"usage"行后面添加"reference"。在文件````````中,添加以下快捷方式:


from.subpackage1.myclass1 import myclass1
from.subpackage2.myclass2 import myclass2
from.subpackage2.myclass3 import myclass3

。在文件"setup.py"中:

。删除关于python 2的两行(除非您计划编写与python2兼容的代码)。
删除"find_packages()"的参数。

…_` my toy package`:https://github.com/francois durand/my_toy_package




在pycharm中为doctest添加一个运行配置
==


。菜单运行→编辑配置。
通过单击+按钮→python tests→py.test添加新配置。为配置命名,例如"所有测试"。
在*additional arguments*字段中,添加`--doctest modules`。
。忽略警告并验证。

运行此配置:正常情况下,它运行项目的所有测试。


在pycharm中添加sphinx的运行配置

==菜单运行→编辑配置。
加号图标(左上)→python文档→sphinx任务。
为配置命名,例如"生成文档"。
输入:项目的"docs"目录。输出:项目的"build"目录。好的。

运行此配置:通常,它会生成文档。要检查结果,您可以打开文件
``build/index.html`.


>检查所有工作是否正常


在pycharm中:提交/推送。在特拉维斯ci:去当前。构建应该是成功的(可能需要几分钟)。
在已读的文档中:

。在*编译*中,文档应该是*transmis*
。打开文档。
。在目录中,单击第一页(例如,*my toy package*)。你应该有四个*徽章:

。PYPI:无效(第一次发布后将有版本号)。
建造:通过。文件:通过。PYUP:最新。

在目录中,单击*参考*。您应该看到您的功能文档。

如果您愿意,现在可以发布您的第一个版本了(参见下面的内容)。

-
-
在包的生命周期中
-
-



皮查姆:

。更新文件"history.rst"。
在皮查姆码头,执行下列操作之一:

*`` bumpversion patch`(版本x.y.z→x.y.(z+1))当您进行向后兼容的修改(例如
错误修复)时。
*`` bumpversion minor`(版本x.y.z→x.(y+1.0)当您添加功能时。
*`` bumpversion major``(版本x.y.z→(x+1).0.0)更改API时。注意:在0.y.z版本中,api不稳定。提交/推送。

选择"Draft a new release"(起草新版本),添加标记名(如"v0.1.0"和消息
(如"First Stable version")。选择"发布版本"。

几分钟后,travis ci已完成构建并部署到pypi上。


添加一个模块(=一个文件)
=============


通常,这是一个文件"subpackage\myclass",包含类"myclass"。
< BR>在文件```uu init`.py``中:添加快捷方式。
。在"reference.rst"文件中:添加自动文档。

添加包的名称(例如``` numpy`)。


当您从pyup接收到拉取请求时
==
==

。在github网站上:

。打开拉取请求。
。如有必要,请等到travis ci完成构建,以便您知道没有问题。合并请求。
确认合并。
。删除分支。
在头版,你的Pyup徽章应该是最新的。如果不是,这可能只是时间问题。
您可以访问pyup网站,单击gear→reload。

。在pycharm中,菜单vcs→update project。

----
credits
----


这个包是用cookiecutter和"audreyr/cookiecutter pypackage"项目模板创建的。

_ Cookiecutter:https://github.com/audreyr/Cookiecutter
。_` audreyr/cookiecutter pypackage`:https://github.com/audreyr/cookiecutter pypackage



==
历史
===



<0.2.2(2019-04-03)
----

*文档中的小更新。

<0.2.1(2019-03-27)
----



*更新薄片。

<0.2.0(2019-03-27)
----


*使用Sphinx本地构建文档的配置。
*直接在Github网站上发布一个版本。
*文档中的小编辑。

0.1.6(2018-03-06)
----

*小编辑文档。

0.1.5(2018-03-06)
----


*补丁上载子包。


0.1.0(2018-03-06)
----



*PYPI上的第一个版本。




欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaHTTP。请求侦听器   java Selenium webdriver遍历行并仅检索某些列   JavaSpring批处理在启动运行方法之前启动SimpleZoblancher运行方法   maven如何使用Maven2从javadoc生成java源代码?   java为什么我的Unicodont(Slick2D)不画画?   java取消对未使用对象的引用是否会提高冗长方法的性能?   java可执行Jar的画布比使用Eclipse Runner的小   为什么我的for循环在Android studio中与eclipse(java)产生不同的结果   java代码段字节数组到端口号   java在DynamoDB范围键中插入项   java 安卓。看法WindowManager$BadTokenException:无法添加窗口,您的活动正在运行吗?   java我想要两个列表视图同时滚动   java测试数据分离   java Saxon:每次重新部署后都需要重新启动Glassfish