python renamer模块_python - 发布自己的模块(脚本) 到pypi.org

// 参考链接们

官方文档,参考文档1,参考文档2,

// 可能遇到的问题们

400 - file already exists

上传时候指定版本号

499 - client disconnected

网络问题,多试几次

403 - isn't allowed to upload to project

改个包名试一试

更多问题还请多搜索搜索

// 预先的环境

#1.安装好python3,pip

#2.安装wheel

pip install wheel #否则会出现invalid command 'bdist_wheel

#3.安装twine

pip install twine #上传包到pypi用的

#4.注册pypi.org账号,并验证邮箱

#4.配置~/.pypirc文件,~对应linux用户home目录,windows用户C:\Users\账户名,内容用下面折叠的代码

[distutils]

index-servers=pypi

[pypi]

repository=https://upload.pypi.org/legacy/

username=

password=

View Code

// 提示

1.看官方文档如果能解决问题,就不要看这篇笔记,这里面是个人理解,可能有偏差。

2.setup.py,中的setup函数的每个参数在官方文档里面都有说明,setup(name="",这个name就是你的模块(脚本)的package-name,这个不能重复,否则无法上传。

3.除了官方文档,通过python交互模式help("setuptools.setup"), help("setuptools.find_packages")也能获取一点的帮助。

4.在预先环境中的.pypirc文件中我并没有写下我的pypi.org账号密码,而是在上传的时候手动指定的。

5.下面demo中的setup.py中的entry_points的console_scripts是指定安装自己的包后,在控制台输入命令执行什么代码,我的是'just-rename = lhnrenamer.rename:main',就是在cmd中运行just-rename就运行包lhnrenamer下rename文件的main函数。

6.重申一遍,我这个demo中setup.py,setup(name="just-rename", just-rename是我上传到pypi.org的包名,和我实际代码中的模块(package)名称lhnrenamer不一致没关系,应为just-rename下可能有很多类似lhnrename这个的package.

7.更新代码后几点更新版本号,重新构建并上传,twine上传的时候指定好文件的版本号。

// demo

2.文件路径截图

3.rename.py

importosimportreimportsys#遍历文件夹

defwalkFile(workdir,pattern,replacement):for dirpath, dirnames, filenames inos.walk(os.path.realpath(workdir)):#遍历文件

for f infilenames:

doRename(workdir,f,pattern,replacement)#执行重命名

defdoRename(workdir,filename,pattern,replaceMent):

workdir=os.path.realpath(workdir)

matcies= re.search(pattern, filename, flags=0)print("<=" +os.path.join(workdir, filename))ifmatcies:

newFileName= re.sub(pattern, replaceMent, filename, count=0, flags=0)

old_name=os.path.join(workdir, filename)

new_name=os.path.join(workdir, newFileName)print("=>" + old_name + "\t--->\t"+new_name)

os.rename(old_name,new_name)else:print("no match")defmain():if(len(sys.argv) < 4):print("just-rename ")returnworkdir= sys.argv[1]

pattern= sys.argv[2]

replacement= sys.argv[3]print("--"*10)print("workdir:\t"+workdir)print("pattern:\t"+pattern)print("replacement:\t"+replacement)print("--"*10)

walkFile(workdir,pattern,replacement)if __name__ == '__main__':

main()

View Code

4.setup.py

#-*- coding: utf-8 -*-

from setuptools importsetup, find_packages

with open("README.md", "r", encoding="utf-8") as fh:

long_description=fh.read()#with open('requirements.txt', "r", encoding="utf-8") as f:#requires = f.read().splitlines()

setup(

name= "just-rename",

packages= find_packages(where='.'),

version= "1.0.3",

entry_points={"console_scripts": ['just-rename = lhnrenamer.rename:main']

},

description= "just-rename, batch rename filenames, all scripts will be written with Python3",

author= "lhnonline",

author_email= "0376lhn@gmail.com",

license= "GPLv3",

url= "http://github.com/lhnonline/renamer",#install_requires = requires,

include_package_data=True,

zip_safe=True,

exclude_package_data= {'': ['__pycache__']},#download_url = "",

keywords = [ "renamer", "batch rename filenames with regex support", "just-rename"],

classifiers=["Programming Language :: Python","Programming Language :: Python :: 3","License :: OSI Approved :: GNU General Public License v3 (GPLv3)","Operating System :: OS Independent"],

long_description=long_description,

long_description_content_type="text/markdown",

)

View Code

5.准备好代码

6.构建你的代码(请确保你的setup.py中的name,你的包名未被使用,否则上传的时候会提示The user '你的账户名称' isn't allowed to upload to project '你的setup中name的值,这个值被人用了')

python setup.py sdist bdist_wheel

7.上传你的代码

twine upload -u 你的pypi用户名 -p 你的pypi密码 dist/你要上传的文件 #如果你更新了代码,记得更新setup.py中的版本号,重新构建你的代码,再次上传就好了。

8.通过pip 就可以安装了

pip install just-rename

# 如果有更新可以更新

pipinstall just-rename --upgrade

# 也可以无情的删除

pip uninstall just-rename

9.也可到pipy.org看看

// last but not least

1. 如何给模块加上文档,还不会。。。

2.如果恰好你也需要批量给文件改名,可以pip install just-rename试一试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值