我博客的地址: http://www.reyoung.me http://www.thisisreyoung.com
最近在写python的一个幻灯生成器。看到很多python的库都以setup.py和easy_install安装,便打算尝试一下。一试之下发现极端简单。所以做一些笔记。
参考的文章有:
准备工作
万事开头难,要想你的python代码可以使用easy_install和setup.py,那么必须做好以下准备:
-
安装python的setuptools包
-
你的代码必须是在package里。也就是你的代码不能出现在根目录,应该在一个目录下,且有init.py。
书写你的setup.py脚本
本着记录我的想法的目的,我就不从Hello world开始了。我就直接将SlideGen这个库的setup.py放出来。根据每行说明一下,大家应该就懂了。
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
setup(
name='SlideGen',
version='0.0.0.1 pre',
packages=['slidegen'],
author='reyoung',
author_email='reyoung@126.com',
license='LGPL',
install_requires=["PyYAML>=3.10","Markdown>=2.1.1","tornado>=2.2"],
description="A HTML5 Slide Generator in python",
entry_points ={
'console_scripts':[
'SlideGen=slidegen.SlideGen:Main'
]
},
keywords ='html5 slide generator',
url='https://github.com/reyoung/SlideGen'
)
|
这个代码需要在根目录中写一个叫做setup.py文件,在setup.py中包括上述代码。
在其中,必须包含一个叫做setup的函数,在这个函数中,可以对代码包的参数进行设置。一些参数的简单介绍如下:
使用setup.py
安装
在写好setup.py后,安装变得异常简单。直接使用命令python setup.py install
即可以完成安装。
调试/卸载
我并没有找到使用python脚本卸载的方法,但是可以使用python setup.py install --record install.txt
将所有安装的文件列在install.txt中。我们可以使用rm来删除这些文件,达到卸载的目的。
上传到PyPi的版本库
上传pypi后,其他人就可以使用easy_install XXX来安装了。
上传也非常简单,只需要一条命令。
setup.py register sdist bdist_egg upload
而使用这条命令的结果,就会将你的代码传到pypi上,需要注意的是:
-
如果你没注册pypi帐号,在命令行中他会提示你注册pypi帐号,跟着步骤来就好了。但是需要注意验证电子邮箱。
-
之后,如果你选择记住密码,他会在你的%HOME%\.pypirc中存储你的密码(linux下是~/.pypirc),需要注意的是,他存储密码的格式不正确,需要手工的添加[server-login]这一段,格式如下
...
[server-login]
username: XXXXXX
password: XXXXXX(明文)
这样你就可以将python的代码上传到pypi版本库中了。
分享到:
相关推荐
Python 2.7是Python编程语言的一个重要版本,发布于2010年,并在2020年停止了官方支持。尽管如此,许多遗留项目和系统仍然依赖于这个版本,因为它提供了稳定性和兼容性。Python 2.7引入了许多改进和修复,包括语法上...
setuptools是Python的默认打包工具,它扩展了Python的distutils库,提供更强大的功能,如创建复杂的元数据、处理依赖关系、自动发现项目中的模块等。在Python 2.7时代,setuptools使得开发者能够创建符合Python ...
Python中的`setuptools`是一个强大的打包和分发工具,它为Python开发者提供了构建、安装和分发Python软件的便利。`setuptools`是Python生态系统中不可或缺的一部分,它使得Python项目可以方便地创建`.egg`格式的包,...
3. **分发**:setuptools使得Python项目能够被上传到PyPI,以便全球的Python开发者都能找到并安装。通过`python setup.py register`和`python setup.py upload`命令,开发者可以轻松地将项目注册并上传到PyPI。 4. ...
6. **打包发布**:setuptools支持将项目打包成`egg`或上传到PyPI(Python Package Index),使得其他用户可以通过`pip`轻松安装。 对于Python 2.7的开发者来说,理解并正确使用setuptools至关重要,因为它可以帮助...
此外,`upload`命令可以将你的软件包上传到PyPI(Python Package Index),供其他人安装和使用。 4. **依赖管理**: 通过在`setup.py`中使用`install_requires`参数,setuptools可以帮助处理项目依赖。它会自动...
5. **打包和上传到PyPI**: PyPI(Python Package Index)是Python官方的第三方库仓库,setuptools可以使用`setup.py register`和`setup.py upload`命令将项目注册并上传到PyPI,使得其他用户可以通过pip轻松获取并...
在Python开发中,将自定义的模块或库分享给他人或者公开发布,通常我们会将其打包成可安装的软件包,并上传到Python Package Index (Pypi)。Pypi是Python官方的第三方软件包仓库,用户可以通过pip命令方便地安装这些...
5. **分发到PyPI**:setuptools可以将包上传到Python Package Index (PyPI),使得全世界的用户可以通过pip等工具方便地安装。 **setuptools-50.2.0** 版本的更新可能包括了错误修复、性能优化或者新的特性。每个...
Python模块`setuptools`是Python开发中不可或缺的一部分,它提供了高级打包和分发工具,使得开发者可以更加方便地创建、管理、安装以及分发Python项目。`setuptools`的版本19.1是一个重要的里程碑,引入了若干改进和...
对于Python开发者来说,理解并掌握`setuptools`的使用至关重要,这不仅能帮助他们高效地管理自己的项目,也能更好地参与到Python的开源社区中去。而`python-setuptools-5.7.rar`这个压缩包,就是`setuptools`的一个...
Python库setuptools是Python开发中不可或缺的一个工具,它主要用于项目的构建、打包和分发。setuptools使得Python开发者能够创建源代码包,这些包可以被安装到用户的系统中,便于共享和使用。在Python世界里,...
在Python 2.7版本中,尤其是在64位Windows系统上,Setuptools扮演着核心角色,因为它是安装、打包和分发Python库的必备组件。让我们深入探讨Setuptools的详细知识。 首先,Setuptools是一个Python模块,它的主要...
当你创建了一个Python项目并希望与其他人共享时,将它上传到PyPI是最佳选择。本教程将详细解释如何打包你的Python项目并将其上传至PyPI。 首先,你需要确保你的Python环境已经安装了`setuptools`、`wheel`和`twine`...
"setuptools"是Python社区广泛使用的包管理工具,它使得安装、打包和分发Python软件变得简单。本文将详细讲解如何使用"IronPython"和"setuptools"来安装Python的第三方库。 标题提及的"setuptools-py2.7.egg"是一个...
6. **上传到PyPI**:setuptools与`twine`工具配合,可以将项目打包后上传到Python Package Index (PyPI),供全球用户下载和安装。 **三、setuptools与PyPI** PyPI是Python的官方软件仓库,开发者可以在这里发布...
setuptools是Python生态系统中的一个关键库,它为项目打包、安装和分发提供了强大的工具。在这个场景中,我们关注的是setuptools的版本58.4.0,它被封装在一个名为"setuptools-58.4.0.tar.gz"的压缩文件中。 ...
Python的`setuptools`工具是Python开发者不可或缺的资源,它为Python项目提供了打包、分发和安装的解决方案。`setuptools`使得Python开发者能够创建`.egg`格式的包,这在早期的Python生态中是非常常见的一种包管理...
8. **PyPI发布**:在发布到PyPI时,`setuptools_scm`确保上传的版本号反映了源代码的实际状态,避免了手动更新版本号可能引入的错误。 9. **持续集成**:在持续集成(CI)环境中,`setuptools_scm`能确保每次构建都...