平常时经常用pip install xx 去安装第三方包,那怎么制作自己的包呢,也可以通过pip的方式去安装,这两天研究了下,这里记录下,也给大家分享下吧
1.首先要去pypi的官网自己去注册一个账号,然后邮箱验证
但是我邮箱验证了之后,页面上还老是提示下面的东西
PYPI双因素身份验证(2FA)
我就选了一个二维码的,捣鼓了半天才知道怎么用,就是二维码的下面有一串字符可以复制下,通过下面的代码,得到一个6位数字的字符,然后输入到右侧的文本框,提交就行了
前提先 pip install pyotp
import pyotptotp = pyotp.TOTP('二维码下面的一串字符复制过来')a=totp.now() print (a)
发现这个一串字符要记下来,每次登录时,输入用户名和密码后,还要输入下pyotp新生成的六位数字,据说是为了安全性
2.我的目录结构如下图,圈红的是重点,其他可以忽略
![c92655624e0c4fc8b47d7a3d8b392d18.png](https://i-blog.csdnimg.cn/blog_migrate/42d0409806f21a207b3ab67d56e18ca1.jpeg)
__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文件
![7973dd7a67a4a0d4fb8675ca630ed2e2.png](https://i-blog.csdnimg.cn/blog_migrate/165beb57eec2cf4034bdf949e7701079.jpeg)
输入以下内容:
[distutils]index-servers=pypi[pypi]repository = https://upload.pypi.org/legacy/username = xxxx你的pypi用户名password = xxxx你的pypi密码
![8cc28c0d45a148f15fe4d615431996fa.png](https://i-blog.csdnimg.cn/blog_migrate/5147e027431f71aee56b695f001eaeb3.jpeg)
4.接下来,cmd命令行继续输入下面的内容
有个前提:pip install twine
twine upload distlgplibdemo-0.0.3.tar.gz
![026270587465f07294700b7183c72b3c.png](https://i-blog.csdnimg.cn/blog_migrate/667e0ea995e703c983e43b29510babd2.jpeg)
5.然后去pypi官网看看,是否多了刚刚上传的包
![6979720fe404f068135afe37cb8ce328.png](https://i-blog.csdnimg.cn/blog_migrate/c39c05b40522c5c61daa60be327a6aeb.jpeg)
6.咱们来测试下,刚刚的包是否能正常安装
pip install -U lgplibdemo
![060a2e3c77d9780fe5d489183a999880.png](https://i-blog.csdnimg.cn/blog_migrate/c4af9212270462fd7be1566a2ec6cea9.jpeg)
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)
![163b6beb34499c66bc124e332e59375c.png](https://i-blog.csdnimg.cn/blog_migrate/f04129489bca6f443ec0a2387a15b53b.jpeg)