學(xué)習(xí)過程中參考網(wǎng)站https://packaging.python.org/tutorials/packaging-projects/展懈,主要是翻譯成中文。
- 在本地建立項(xiàng)目的時(shí)候钞它,首先需要?jiǎng)?chuàng)建如下的文件結(jié)構(gòu):
packaging_tutorial/
example_pkg/
__init__.py
接下來所有的操作都是在packaging_tutorial文件夾下面
- 創(chuàng)建打包的文件
packaging_tutorial/
example_pkg/
__init__.py
setup.py
LICENSE
README.md
- setup.py
該文件的作用是setuptools的build script.他傳遞給setuptools關(guān)于你的包的名字薄腻,版本等信息等思瘟。
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="example-pkg-YOUR-USERNAME-HERE", # Replace with your own username
version="0.0.1",
author="Example Author",
author_email="author@example.com",
description="A small example package",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/pypa/sampleproject",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>=3.6',
)
- README.md
# Example Package
This is a simple example package. You can use
[Github-flavored Markdown](https://guides.github.com/features/mastering-markdown/)
to write your content.
LICENSE
https://choosealicense.com/-
生成distribution archives
這樣的話就可以使用pip進(jìn)行安裝了喂击;- 確保自己有最新的setuptools和wheel安裝:
python3 -m pip install --user --upgrade setuptools wheel
- 在setup.py所在的文件夾運(yùn)行如下代碼:
python3 setup.py sdist bdist_wheel
最終應(yīng)該輸出一些文字肃叶,一旦成功在dist文件夾會生成兩個(gè)文件:
dist/
example_pkg_YOUR_USERNAME_HERE-0.0.1-py3-none-any.whl
example_pkg_YOUR_USERNAME_HERE-0.0.1.tar.gz
- 上傳distribution archives:
注冊Test PyPI 賬戶https://test.pypi.org/account/register/夯辖; 獲得PyPI API token 之后便可以安全的上傳project;
在https://test.pypi.org/manage/account/#api-tokens生成新的API token;在你保存和復(fù)制token之前都不要提前關(guān)閉頁面;
注冊完畢
python3 -m pip install --user --upgrade twine
- 一旦安裝完畢劝评,可以使用一下代碼上傳所有的在dist的archives:
python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
- username: token
password: pypi- prefix
最終可以看到類似的內(nèi)容:
Uploading distributions to https://test.pypi.org/legacy/
Enter your username: [your username]
Enter your password:
Uploading example_pkg_YOUR_USERNAME_HERE-0.0.1-py3-none-any.whl
100%|█████████████████████| 4.65k/4.65k [00:01<00:00, 2.88kB/s]
Uploading example_pkg_YOUR_USERNAME_HERE-0.0.1.tar.gz
100%|█████████████████████| 4.25k/4.25k [00:01<00:00, 3.05kB/s]
- 可以再網(wǎng)頁上看到自己的package:https://test.pypi.org/project/example-pkg-YOUR-USERNAME-HERE