平常时经常用pip install xx 去安装第三方包,那怎么制作自己的包呢,也可以通过pip的方式去安装,这两天研究了下,这里记录下,也给大家分享下吧

1.首先要去pypi的官网自己去注册一个账号,然后邮箱验证

但是我邮箱验证了之后,页面上还老是提示下面的东西

PYPI双因素身份验证(2FA)

我就选了一个二维码的,捣鼓了半天才知道怎么用,就是二维码的下面有一串字符可以复制下,通过下面的代码,得到一个6位数字的字符,然后输入到右侧的文本框,提交就行了

前提先 pip install pyotp

import pyotptotp = pyotp.TOTP('二维码下面的一串字符复制过来')a=totp.now() print (a)

发现这个一串字符要记下来,每次登录时,输入用户名和密码后,还要输入下pyotp新生成的六位数字,据说是为了安全性

2.我的目录结构如下图,圈红的是重点,其他可以忽略




python pip 把所有依赖包下载到本地_二维码


__init__.py是空的,lgpdemo.py的代码如下:

import base64import os def Base_64(PATH,IMGNAME): file_path = os.path.join(PATH,IMGNAME) #获取base_dir+'/image'文件夹内的文件 f=open(file_path,'rb') #二进制方式打开图文件 lsReadImage_f=base64.b64encode(f.read())#读取文件内容,转换为base64编码 f.close()#关闭文件 return lsReadImage_f

lgplib.py的代码如下:

import base64import os class lgplib():  def Base_64(self,PATH,IMGNAME): file_path = os.path.join(PATH,IMGNAME) #获取base_dir+'/image'文件夹内的文件 f=open(file_path,'rb') #二进制方式打开图文件 lsReadImage_f=base64.b64encode(f.read())#读取文件内容,转换为base64编码 f.close()#关闭文件 return lsReadImage_f

上面的代码文件随便搞一个就行,我是为了后面的调试练习,写了两个

setup.py的代码如下:

#!/usr/bin/env pythonfrom setuptools import setup, find_packagessetup( name = 'lgplibdemo', version = '0.0.3', description = 'library ', long_description = 'library ', author = 'ligaopan', author_email = 'ligaopan1984@163.com', url = 'https://github.com/ligaopan/lgp-library', license = 'MIT Licence', keywords = 'testing testautomation', platforms = 'any', python_requires = '>=3.7.*', install_requires = [], package_dir = {'': 'src'}, packages = find_packages('src') )

setup.py代码里面的name一定要跟程序包src文件下的lgplibdemo一致

上面的一句话说的不正确哈,经测试,setup.py代码里面的name改为其他的也是正常的;只要引用(from)的是src下面的文件名(包名)一致就行 ------2019.11.1,20:40

3. cmd进入到E:auto1029lgp-library>目录下,输入下面的内容,回车

python setup.py sdist

回车后会让你输入用户名,然后密码,每次都这么输,如果感觉麻烦,可以在你的用户下建一个.pypirc文件


python pip 把所有依赖包下载到本地_python安装包_02


输入以下内容:

[distutils]index-servers=pypi[pypi]repository = https://upload.pypi.org/legacy/username = xxxx你的pypi用户名password = xxxx你的pypi密码


python pip 把所有依赖包下载到本地_二维码_03


4.接下来,cmd命令行继续输入下面的内容

有个前提:pip install twine

twine upload distlgplibdemo-0.0.3.tar.gz


python pip 把所有依赖包下载到本地_二维码_04


5.然后去pypi官网看看,是否多了刚刚上传的包


python pip 把所有依赖包下载到本地_python安装pip_05


6.咱们来测试下,刚刚的包是否能正常安装

pip install -U lgplibdemo


python pip 把所有依赖包下载到本地_python_06


7.咱们再来测试下,安装的包的功能是否正常

from lgplibdemo.lgpdemo import Base_64from lgplibdemo.lgplib import lgplib b=Base_64('C:甥敳獲xxxDesktop',"9272.jpg") print(b)   c=lgplib.Base_64('','C:甥敳獲xxxxDesktop',"9272.jpg") print(c)


python pip 把所有依赖包下载到本地_python_07