Pip
发布自己的pip包¶
一、注册自己的 PyPi 帐号
也可以是自己搭的 PyPi私服仓库的账号
二、依据自己的项目目录,创建setup.py
如下图所示,agent_cli是我整体的项目,我想要将pip-test目录下的代码打包上传到Pypi仓库中;
在pip-test的同级目录,创建setup.py文件
三、 编写自己的setup.py文件
from setuptools import setup, find_packages
setup(
name='tsjPython', # 打包后的包文件名
version='0.1', # 版本号
keywords=("tsj"), # 关键字
description='personal code for tsj', # 说明
long_description="none", # 详细说明
license="MIT Licence", # 许可
url='http://home.ustc.edu.cn/~shaojiemike',
author='Shaojie Tan',
author_email='[email protected]',
# packages=find_packages(), #这个参数是导入目录下的所有__init__.py包
include_package_data=True,
platforms="any",
install_requires=['termcolor',
'plotille'], # 引用到的第三方库
# py_modules=['pip-test.DoRequest', 'pip-test.GetParams', 'pip-test.ServiceRequest',
# 'pip-test.ts.constants', 'pip-test.ac.Agent2C',
# 'pip-test.ts.ttypes', 'pip-test.ac.constants',
# 'pip-test.__init__'], # 你要打包的文件,这里用下面这个参数代替
packages=['tsjPython'] # 这个参数是导入目录下的所有__init__.py包
)
四、打包自己的项目
执行下述两条命令
python setup.py build #执行此命令后,会生成上面图片中build的目录,目录层级是 build/lib/pip-test, pip-test目录下就是你打包文件解压后的结果,可以在此查看打包的代码是否完整
python setup.py sdist # 执行此命令后,就会在dist目录下生成压缩包文件 .tar.gz
五、上传到PyPi服务器
在上传前,要建一个文件,$HOME/.pypirc
,$HOME
目录在linux或者mac系统下就是~/目录。在这里建一个 .pypirc
文件。里边的内容如下:
或者使用token.
注册好之后,生成一个 token:https://pypi.org/manage/account/#api-tokens。由于我们是要上传新项目,所以不要限制 scope 到特定的项目。
提前安装 py -m pip install --upgrade twine
执行此命令: twine upload dist/XXXXX-0.1.0.tar.gz
上传你刚刚打包好的压缩包
六、安装使用
使用 pip install XXX
就可以轻松使用
问题¶
requests.exceptions.ProxyError: HTTPSConnectionPool(host='upload.pypi.org', port=443): Max retries exceeded with url: /legacy/ (Caused by ProxyError('Cannot connect to proxy.', OSError(0, 'Error')))
不要挂代理
开发测试包¶
如果为了测试而上传代码,会占用版号。
可以通过先安装在本地来实现
使用 setup.py 安装的包会被复制到当前环境的 site-packages 目录下,这意味着,一旦我们修改了包的源代码,就需要重新安装它。这常常是集中开发过程中的一个问题,因为很容易忘记需要再次执行安装,这就是为什么 setuptools 提供了一个额外的 develop 命令的重要原因。
develop
命令的完整格式为Python setup.py develop
,该命令允许我们在开发模式下安装包,它会在部署目录(site-packages)时创建一个指向项目源代码的特殊链接,而不是将整个包复制过去,从而实现在编辑包的源代码之后无需再重新安装,并且它在 sys.path
中可用,就像正常安装一样。
pip 也支持用这种模式来安装包,这个安装选项叫作可编辑模式,可以使用 install 命令的 -e
参数来启用,代码格式如下:
pip install -e 包路径
需要进一步的研究学习¶
暂无
遇到的问题¶
暂无