1. 将代码整理为标准格式
具体而言,需要__init__.py文件,还需要有一个setup文件,放在目标文件夹下(如scprotein/setup.py)
from setuptools import setup, find_packages
setup(
name='scprotein',
version='0.1.0',
author='LiWei',
description='scprotein is a deep contrastive learning framework for Single-cell Proteomics Embedding.',
url='https://github.com/TencentAILabHealthcare/scPROTEIN',
packages=find_packages(),
install_requires=[
'torch>=1.10.0',
'scanpy>=1.8.2',
'numpy>=1.22.3',
'pandas>=1.3.5',
'scipy>=1.8.1',
'scikit_learn>=1.1.1',
'torch_geometric>=2.0.4'
],
python_requires=">=3.8",
author_email = 'nkuweili@mail.nankai.edu.cn',
license='Apache',
package_data = {'': ['*.txt', '*.rst', '*.npy', '*.jpg']},
)
https://www.jianshu.com/p/d6cbe27da90c
这里面有详细的各个参数的用处
注意如果要想把除了py之外的文件放进去,需要用
package_data = {'': ['*.txt', '*.rst', '*.npy', '*.jpg']},
这样这些后缀的都会被包括进来,否则只有py文件会被安装
2. 执行setup文件
执行setup文件:
python3 setup.py bdist_wheel sdist
将整个脚本打包,应该会出现一个dist文件夹,里面有whl文件和tar.gz文件
注意scprotein一定在里面有个单独的文件夹,再里面是自己的脚本,像下面这样是错误的:
这个whl文件实际上就已经是可以执行的文件了:
pip install xx.whl
3. 上传到pypi
# 上传需要安装twine
pip install twine
twine upload dist/*
# 输入刚注册的用户名密码就能上传。
需要注意的是,由于我设置了什么2FA验证,每次是需要token的
生成token在我的pypi主页下面
执行upload的时候不要输用户名和密码
用户名输入:
__token__
密码输入
token的那一串字符