# 安装第三方库

# 安装

首先在 PowerShell 执行以下命令:

pip -V

如果返回值类似这样:

pip 21.2.4 from C:\Users\ 你的用户名 \AppData\Local\Programs\Python\Python310\lib\site-packages\pip (python 3.10)

那证明 python 安装无误,如果出现 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确 ,然后再试一次。
请重新安装 python 或将 pip 添加到 path 中 \

安装 python 时务必勾选 ADD PYTHON3.10 TO PATH
添加环境变量可自行百度

可以安装一个 numpy 试一下:

pip install numpy

出现 Collecting numpy 则代表安装已经开始
然后就会发现:这玩意的下载速度慢的离谱堪比百毒网盘
如何加速它是下一节的内容,先看一下安装完成后可能需要 10 分钟左右

出现 Successfully installed ... 就是安装完成

如果出现:

WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.
You should consider upgrading via the 'C:\Users\zkz20\AppData\Local\Programs\Python\Python310\python.exe -m pip install --upgrade pip' command.

则代表你的 pip 版本较低,可以使用提示中的代码升级,但在 win10 部分版本只要命令中有 python 就会跳转到 Microsoft Store
所以可以试一下另一种办法:

pip install --user -U pip
# 以下为说明
# --user 代表使用用户级权限 (一般为标准管理员)
# -U 代表下载最新的版本 (不然会不更新)

如果你的系统输入 python 后不会跳转,请使用 python -m pip install --upgrade pip
这种使用 pip 直接安装 pip 的方法仅为应急之举

# 加速

刚刚就发现了 pip 下载很慢,这是因为它会从国外的 Pypi 进行索引
然后从 github 进行下载,在国内会导致无法下载或速度近乎为零
但阿里提供了 pypi 和 "轮子" 的镜像源,可以使用它进行加速
首先在资源管理器内进入 C:\用户(users)\你的用户名\pip
如果没有 pip 文件夹就新建一个,然后在文件夹内新建 pip.ini (新建文本文档然后更改后缀名即可)
然后写入以下内容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com

随后保存,重启电脑,再进行安装,速度就上来了

# 创建自己的 python 包

# 创建一个 python 包

使用 pycharm 可以快速创建一个 python 包:
image.png

测试包名为 test, 文件为 demo.py, 内容如下:

def hello():
    print("hello")

如果没有 pycharm 也可以手动创建文件夹,然后创建一个 __init__.py
这个文件中通常不包含代码,仅包含以下两部分内容:

"""
此包的描述(可选)
"""
import xxx # 需要带上对应模块名调用,例如 test.demo.hello ()
# 或者
from xxx import * # 不需要带上模块名,例如 test.hello ()

# 打包 python 包

先运行以下命令,确保 setuptools 和 wheel 安装正常:

pip install --user --upgrade setuptools wheel

在包目录下,新建 setup.py , 内容如下 (可参照注释更改):

import setuptools
setuptools.setup(
    name="test",  # 软件包发布名
    version="1.0.0",  # 版本号
    author="kaitaku",  # 作者名
    author_email="test@kaitaku.xyz", # 作者邮箱
    description="这里应该是一段描述",  # 包的短描述
    long_description="这里应该是一段长描述",  # 完整描述
    long_description_content_type="text", # 完整描述文本类型
    url="https://www.kaitaku.xyz",  # 包的网站主页
    packages=setuptools.find_packages(), # 自动补全依赖
    classifiers=[
        "Programming Language :: Python :: 3", # 包所用语言、版本
        "License :: OSI Approved :: MIT License",  # 包的开源许可证
        "Operating System :: OS Independent"  # 包的操作系统
    ]
)

然后打开终端,在对应文件夹下输入下列命令:

python setup.py sdist bdist_wheel

当出现 removing 'test-1.0.0' (and everything under it) 时,你的包就创建好了
它应该在对应文件夹的 dist/<packageName>-<packageVersion>.tar.gz 这个位置

还有一个 whl 结尾的文件,这是安装和发布时会用到的

输入如下命令安装它:

pip install dist/test-1.0.0.tar.gz

随后应该会出现 Successfully installed test-1.0.0 , 此时,你的包就安装完毕了
现在你可以直接 import test , 删除也很简单,和标准 pip 包一样

# 发布你的 python 包

现在你应该已经创建了一个 python 包,现在可以把它发布到 pypi 上了 \

pypi 就是 Python Package Index , 所有 python 第三方包的索引

前往 pypi 注册一个账号
然后创建 README.rstLICENSE.txt , 内容如下:

  • README.rst 就是你的 python 包的长描述,遵循 markup 语法
  • LICENSE.txt 就是你的包的许可证内容,一般有 MIT、BSD、GPL 等

然后更改一下 setup.py 的内容:

import setuptools
with open("README.rst","r",encoding="utf-8") as f:
    longDescription = f.read()
setuptools.setup(
    name="test",  # 软件包发布名
    version="1.0.0",  # 版本号
    author="kaitaku",  # 作者名
    author_email="test@kaitaku.xyz", # 作者邮箱
    description="这里应该是一段描述",  # 包的短描述
    long_description=longDescription,  # 完整描述
    url="https://www.kaitaku.xyz",  # 包的网站主页
    packages=setuptools.find_packages(), # 自动补全依赖
    classifiers=[
        "Programming Language :: Python :: 3", # 包所用语言、版本
        "License :: OSI Approved :: MIT License",  # 包的开源许可证
        "Operating System :: OS Independent"  # 包的操作系统
    ]
)

然后安装 twine 包:

pip install twine

然后执行下列命令上传库:

twine upload dist/*

然后会要求输入你的 pypi 账号密码,直接输入后等待上传即可
现在,你可以用 pip 命令安装你的 python 包了