【无标题】自定义python包

一般的,我们的项目可能除了进入到项目内使用外,还可能需要在项目外给其它地方调用,比如bert4keras等,那么,我们可以这么组织结构,

project_name/
----xixiNLP:# 这里可以是任意你想好的名字
--------init.py
--------algorithm/
------------init.py
--------data/
--------gadget/
------------__

init__.py
--------utils/

------------init.py
----examples/:# 这里调用xixiNLP里面的模块
----requirements.txt:# 需要的python依赖
----readme.md:# 项目说明

----test.py:# 用于测试xixiNLP里面的功能

主要的核心就是__init__.py
里面。对于xixiNLP
下面的__init__.py,我们需要将其下面的包都给引入进去,比如:(需要注意的是要从项目名开始)

from xixinlp.utils.logger import
set_logger

logging = set_logger(level=“INFO”, log_dir_name=".xixinlp_logs")

from xixinlp.utils import *
from xixinlp.algorithm import *
from xixinlp.data import *
from xixinlp.gadgat import *

对于每一个包下面的
init…py,我们需要将其下的包和模块给引入,比如algorithm下面有一个seg包,那么可以这么导入:

from . import seg

然后,我们要的目标是将xixiNLP拷贝到任意地方,在其同目录下就可以import使用了。比如test.py里面:

import xixinlp as xixi

text = “北京市长江大桥”
seg_text = xixi.seg.seg_jieba(text)
print(seg_text)

import time
#cur_time = xixi.timeParser.cur_time
#print(cur_time)
cur_time = xixi.timeParser(time.time())
print(cur_time)

text = “北京市长江大桥”
seg_text = xixi.seg.seg2.seg_jieba2(text)
print(seg_text)

注意:如果我们在xixiNLP/init.py里面直接一次性导入了多级包下的函数,那么可以直接使用,否则要按照层级进行导入再使用。当然,我们也可以将其上传到pypi,这样就可以pip安装和使用了

目录结构:

project_name
----xixinlp
----LICENSE # 许可类型
----MANIFEST.in
----README.MD
----setup.py
----test.py

1、首先可以https://test.pypi.org/(用于测试)和https://pypi.org/(正式

环境)上分别注册一个账号(可以相同),然后分别ADD API TOKEN。

2、进入到project_name下,
执行python3 setup.py sdist bdist_wheel

3、 windows下在C:\Users\Administrator,linux系统在~/下新建一个.pypirc,里面写入:

[distutils]
index-servers=testpypi # 这个和下面的testpypi对应

[testpypi]
username=token
password=自己添加的token

4、安装twine:python3 -m pip install --user --upgrade twine

5、上传已经打好的包:python3 -m twine upload --repository testpypi dist/*

6、完成后会返回给你一个地址,那就是我们已经上传好的。

7、再来看看核心部分:setup.py,我们需要关注的几个点:

NAME = ‘xixinlp’
DESCRIPTION = ‘测试上传包到pypi’
URL = ‘https://github.com/taishan1994’
EMAIL = ‘xxxx@qq.com’
AUTHOR = ‘xiximayou’
REQUIRES_PYTHON = ‘>=3.6.0’
VERSION = ‘0.0.1’ # 版本号很重要

packages=find_packages(), # 会找到xixinlp下面所有的包,也就是包含__init__.py的
py_modules=[‘test’], # 补充不属于任何包的python文件,不用带.py

package_data={‘spam’: [‘data.txt’]},

一些静态文件

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值