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所在的项目路径。

相关推荐
我就是妖怪3 分钟前
KMP全栈开发:从Android到AI Agent的技术演进与实践
android·人工智能
夏沫的梦4 分钟前
用 TRAE Work 3 小时搞定 3 天工作量:一场竞品调研报告的实战复盘
人工智能
等一朵映山红10 分钟前
多模态向量库选型:ChromaDB 适配图文多模态数据实战
人工智能
zhangfeng113323 分钟前
2026-08-10/11 AI 领域重要动态筛选(侧重 AI coding 与具身智能)
人工智能·microsoft
leoZ23133 分钟前
Vue3 还原一个企业级后台-01-项目背景与选题
图像处理·人工智能·chatgpt·智慧城市·边缘计算·openvino·dreamfusion
ltqvibe43 分钟前
企业数智化中台的五层架构——AI框架为什么需要纵向贯通
大数据·人工智能·架构
兮动人44 分钟前
AI 开始接管工作台:谁会成为下一代电脑入口?
人工智能·ai·chatgpt·codex·workbuddy
办公室马主任1 小时前
制造业数字化的系统架构:从车间数据到经营闭环怎么设计
人工智能·系统架构·制造
Claire_881 小时前
基于知识图谱构建的学习资料分类整理方案:以多模态检索与智能生成为例
人工智能·powerpoint
花椒技术1 小时前
一个人已经有 Agent 了,我们为什么还要建设统 Agent 平台
人工智能·agent·ai编程