pycharm打包whl

文章目录

    • 报错
      • [报错 ERROR: *.whl is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with bzr+http, bzr+https, bzr+ssh, bzr+sftp, bzr+ftp, bzr+lp, bzr+file, git+http, git+https, git+ssh, git+git, git+file, hg+file, hg+http, hg+https, hg+ssh, hg+static-http, svn+ssh, svn+http, svn+https, svn+svn, svn+file).](#报错 ERROR: *.whl is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with bzr+http, bzr+https, bzr+ssh, bzr+sftp, bzr+ftp, bzr+lp, bzr+file, git+http, git+https, git+ssh, git+git, git+file, hg+file, hg+http, hg+https, hg+ssh, hg+static-http, svn+ssh, svn+http, svn+https, svn+svn, svn+file).)

类似于maven的打包功能,这样自己或别人就可以复用了。

本地打包whl

用一个例子来说明,例如打包一个加法工具。
1、新建一个项目,名称为:my_math_lib
2、创建文件夹my_math
(1)该文件夹下创建一个python文件,名为:__init__.py,内容如下:

bash 复制代码
# my_math/__init__.py
from .calculator import add, add_list

# 定义包的版本
__version__ = "0.1.0"

(2)该文件夹下创建一个python文件,名为:calculator.py,内容如下:

bash 复制代码
# my_math/calculator.py

def add(a, b):
    """
    两个数相加
    """
    return a + b

def add_list(numbers):
    """
    列表求和
    """
    return sum(numbers)

3、根目录下创建一个文件pyproject.toml,内容为:

bash 复制代码
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "my-math-lib"          # 【重要】发布到仓库后的包名 (通常用短横线)
version = "0.1.0"             # 版本号
description = "一个简单的加法库"
authors = [{name = "YourName", email = "your@email.com"}]
readme = "README.md"
requires-python = ">=3.8"
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
]

# 告诉 setuptools 去哪里找代码
[tool.setuptools.packages.find]
where = ["."]  # 在当前目录查找
include = ["my_math*"] # 包含以 my_math 开头的文件夹

4、终端执行python -m build --wheel,会生成dist目录以及whl文件。
5、到另外一个项目中,安装该whl。

bash 复制代码
pip install -e D:/PycharmProjects/my_math_lib

注:这里是路径,不是具体的whl文件,否则会报错。

6、在另外一个项目中新建test.py,内容如下:

bash 复制代码
import my_math

result = my_math.add(10, 20)
print(f"10 + 20 = {result}")

# 如果配置了 __init__.py 导出,也可以直接:
# from my_math import add

7、运行test.py,实测成功了。

报错

报错 ERROR: *.whl is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with bzr+http, bzr+https, bzr+ssh, bzr+sftp, bzr+ftp, bzr+lp, bzr+file, git+http, git+https, git+ssh, git+git, git+file, hg+file, hg+http, hg+https, hg+ssh, hg+static-http, svn+ssh, svn+http, svn+https, svn+svn, svn+file).

重点就是这句: It should either be a path to a local project or a VCS URL

意思是不是一个具体whl文件,还是whl所在的项目路径。

相关推荐
Csvn7 小时前
附录 A+B 主流框架速查 & 工具与资源清单
人工智能·aigc·agent
进击的横打7 小时前
【人工智能】把经验沉淀成 Skill
人工智能
天天被压力7 小时前
【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #02】涨停跌停与特色股池:5类股池接口一次拉全
java·人工智能·python
Wx-bishekaifayuan7 小时前
springboot甘肃特产服务平台50301-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
midelshuang7 小时前
RAG 文档解析(三):bbox 实战——多栏排版与水印 PDF
python
代码方舟7 小时前
PHP数据工程:利用天远学历信息高级版优化专家资源池合规体验
人工智能
飞哥数智坊7 小时前
ZCode 可以自己看微信小程序了
人工智能·ai编程
江润舟7 小时前
万物|炼器 从零手搓工业级旋转目标检测网络 · 卷3 —— 核心算子锻造(三)
人工智能·深度学习
FYKJ_20107 小时前
springboot雅集社区养老管理系统04456-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django