python 上传包到pypi上
参考https://blog.csdn.net/jinjiangongzuoshi/article/details/110137116?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0-110137116-blog-106835953.pc_relevant_antiscanv2&spm=1001.2101.3001.4242.1&utm_relevant_index=3
准备好博客里提供的文件夹和文件内容,需要补充的一点是__init__.py是一定需要的,里面可以仅包含版本号,下面是我的文件夹的结构和内容 下面是每个文件的内容
setup.py 内容如下:
from distutils.core import setup
from setuptools import find_packages
with open("README.rst", "r") as f:
long_description = f.read()
setup(name='package_yyxxkk_talk',
version='1.0.0',
description='A small example package',
long_description=long_description,
author='mikezhou_talk',
author_email='762357658@qq.com',
url='https://mp.weixin.qq.com/s/9FQ-Tun5FbpBepBAsdY62w',
install_requires=[],
license='BSD License',
packages=find_packages(),
platforms=["all"],
classifiers=[
'Intended Audience :: Developers',
'Operating System :: OS Independent',
'Natural Language :: Chinese (Simplified)',
'Programming Language :: Python',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Topic :: Software Development :: Libraries'
],
)
README.rst 中内容如下 而package_yyxxkk_talk 文件夹中有两个文件, 一个是__init__.py 文件,其内容如下
__version__ = '1.0.0'
另一个main.py 文件,其内容如下
import itertools
case_list = ['用户名', '密码']
value_list = ['正确', '不正确', '特殊符号', '超过最大长度']
def gen_case(item=case_list, value=value_list):
'''输出笛卡尔用例集合'''
for i in itertools.product(item, value):
print('输入'.join(i))
def test_print():
print("欢迎搜索关注公众号: 「测试开发技术」!")
if __name__ == '__main__':
test_print()
这里一个最简单的包就已经创建好了,接下来就是打包变异的过程
首先进入当前项目所在的主目录下(即setup.py 所在目录,然后运行一下命令
python setup.py sdist build
运行结果如下 可以看到没有出错,而且你会发现你的文件夹多了三个东西 然后运行
twine upload dist/*
然后根据提示输入pypi的用户名和密码就可以了,最终结果如下 这就代表你从零开始上传了一个在pypi上任何人都可以下载的简单测试包
python相对路径导入的问题
上面只是一个简单的包,不涉及到python各个moudle的导入问题,如果是复杂的包,就涉及到python相对路径的导入 主要看这个博客 https://blog.csdn.net/Cassie_zkq/article/details/118017209 里面讲的很详细 总之一句话,如果你用相对路径实现了你的包,那么要在主目录下使用python -m **.py 进行测试,而不是去某个文件的所在目录去测试,这样是不合理的,另外,看 其中.** 就是表示当前路径的某个文件,表示相对路径,…**就是表示上层目录的某个文件,这个用法需要知道,例如采用这种文件结构,只需要使用.** 就可以满足基本条件了 同样可以在主目录下进行测试,如果可以成功运行测试文件,那么就说明具有相对路径的包写成功了,发布到pypi上就可以了
github操作
我在命令行进行git push就么有成功过,之前是输入
git push
然后要你输入github账号和密码,我输了,但是又提示我github不再支持使用账号和密码了,而是要使用token, 然后我就去网上找网上怎么弄token,第一步就卡住了,所以的人都在说mac上打开钥匙串访问(keychain Access.app)然后修改密码,但是我发现打开钥匙串访问,发现根本就搜不到github.com,就离谱,然后我又去搜为啥钥匙串访问里搜不到github.com,有人的回答是可能你没有登录过github,可是我github一直在登着啊,我实在是绷不住了,没有办法我直接下载了github desktop,发现我安装好后,第一次成功登陆github desktop后,钥匙串访问出现了github.com. 于是我就修改了token到密码上,发现还是没有作用,但是我发现github desktop上可以点击几下就可以push到远程github上,我试了下,但是因为我之前测试token,中间的token已经改了,但是repostionary还是以前的,导致一直验证失败,我是直接心态崩了,这都什么东西,怎么我就搞不出来咧,然后我尝试了重启电脑和卸载重装github desktop,发现这个软件和pycharm一样,你写在不干净,重新安装后,发现打开的还是和以前的设置一样,问题依然存在,我然后尝试重新来一次,我把之前本地git clone 下载得到的git给删掉了, 重新下载,然后在github desktop上重新加载,这是github desktop要求我验证,这次我验证成功后,在github desktop中push成功了,我去,简直一步一个坑,不过第一次成功了就好,以后的操作可以慢慢学,就是第一次没成功之前简直是搞人心态,其中的一些操作我目前也没有搞懂,只能以后慢慢的熟悉了
|