如何创建包和模块并在pypi上进行发布

如何创建包和模块并在pypi上进行发布

关于在pypi上发布包的知识,在是head first_python这本书中学的,在这本书上关于发布包的方法已经不适用现在的环境了。所以我找了一些视频教程,并试着进行的包的发布试验,最终成功发布。虽然视频教程很详细,但还是遇到了一些意想不到的错误,但都是一些细节问题没处理好。所以有些事情只有自己亲身做过才能体会到其中的不易(注:在win10环境下)。
一、环境准备

1.安装setuptools
方法:下载源码解压,在解压目录下用命令行执行:python3 setup.py install

2.安裝pip(一般都已安裝過)
方法:在安装了setuptools后就包含有easy_install方法
命令行执行:easy_install -3.6 pip
注-3.6可以不用,指python版本
3.安裝wheel
pip install wheel
python3 -m pip install wheel(用python3脚本方法安裝在于区分python2安裝的不同)
4.安装twine(这个包必须安装)
与安裝wheel方式相同

二、创建项目(包含模块)

例如:在桌面创建项目:

myprojct
-----myfirstlib(包名称)
----- init.py(创建后在里面输入:from . import lisirlib)
------lisirlib.py(在这个模块中定义一 个函数用来测试用)
-----setup.py(创建)
-----tool.py(创建一个包外模块,这个可以按需进行,这个模块使用lisirlib中的函数,可以import myfirstlib就可以调用)
-----README.rst
-----LICENSE.txt(这个文件是说明一些许可法规的)
-----MANIFEST.in(要在创建的模块中有LICENSE文件,必须设置这个文件,在文件中写入:include LICENSE.txt)

以上文件创建后在命令行中进入项目文件执行:
--------python setup.py sdist

上面文件中一些设置说明:
setup.py--------from distutils.core import setup
from setuptools import setup ----建议用这个方法

#在这里可以定议一个函数用来读取README中的字符信息,再放入long_description中

def readme_content():
	with open('README.rst',encoding='utf-8') as rf:
		return rf.read()

setup(
        name='myfirstlib',     # 包名字
        version='1.0.0',   # 包版本
        description='This is a test of the setup',   # 简单描述
 		 long_description = readme_content()#长描述
        author='huoty',  # 作者
        author_email='sudohuoty@163.com',  # 作者邮箱
        url='https://www.konghy.com',      # 包的主页
        packages=['myfirstlib'],                 # 包
 py_modules = ['tool'] , #包外模块打包进去就需要添加进来
 license = 'MIT'	#证书
)

三、项目的编译
进入setup.py同级目录后

命令行:
1.python3 setup.py sdist
–生成源码压缩包
–包含setup.py,模块源文件,数据文件等
–可以在任何平台安装
– --formats=压缩格式1,2
=zip,tar就可以生成二个压缩包,内容一样。
–在解压的文件夹中:命令行执行python3 setup.py install
–卸载:手动卸载:删除文件并easy_stall.pth配置文件中的路径删除
或者pip uninstall myfirstlib
—在dist下easy_install 压缩包名
2.python3 setup.py bdist
----二进制
----不包含setup.py,win-amd64.zip格式的,
-----只要解压到sitepage中就可以
3.python3 setup.py bdist_egg
—.egg格式,要用easy_install xxx.egg进行按装
4.python3 setup.py bdist_wheel
–pip install xxx.whl/easy_install xxx.whl
5.python3 setup.py bdist_wininst

四、上传发布

命令行:
在要发布的包所在的文件夹下:
----twine upload xxx.tar(zip,压缩包名)

五、上传包时遇到的坑

1.httperro 400:
描述信息错误 ,要进行检查。
—description,如果是读取README.rst文件要用long_description,对rst文件进行检查。

2.http erro 403
包名重复,把项目文件下的包名改一个名称,同时在setup.py中把name和packages改成包名

发布了1 篇原创文章 · 获赞 1 · 访问量 35
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览