如何使用Pipenv定义Python项目的入口点?
解决方法
Pipenv本身没有专属的项目入口点定义规范,直接复用Python官方的打包配置标准,你之前配置不生效的核心原因是没有触发Pipenv对本地项目的打包安装流程。
步骤1:确认打包配置正确
两种可选配置方式,选一种即可:
方式1:使用setup.cfg(兼容旧版setuptools)
首先在项目根目录创建pyproject.toml声明构建后端,这一步很多人会遗漏:
[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta"
然后保持你已有的setup.cfg配置即可,写法是正确的:
[options.entry_points] console_scripts = cursive = cursive.tools.cmd:cursive_command
方式2:全量使用pyproject.toml(推荐,符合PEP621标准)
不需要额外的setup.cfg,所有配置写在pyproject.toml中即可:
[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project.scripts] cursive = "cursive.tools.cmd:cursive_command"
步骤2:执行可编辑安装生成入口点
配置完成后,在项目根目录执行以下命令,让Pipenv将本地项目安装到虚拟环境中,同时生成对应的可执行文件:
pipenv install -e .
步骤3:验证入口点生效
- 激活虚拟环境后直接调用:
pipenv shell cursive - 不激活虚拟环境也可以直接调用:
pipenv run cursive
常见问题排查
- 确保
cursive.tools.cmd模块真实存在,且模块内存在可调用的cursive_command对象,否则会出现安装或运行报错 - 如果配置更新后不生效,可以先删除旧虚拟环境再重新安装:
pipenv --rm pipenv install -e . - 不要尝试在Pipfile中配置入口点,Pipfile仅用于管理项目依赖,不处理项目自身的打包配置
内容的提问来源于stack exchange,提问作者kolypto
相关产品推荐
相关产品推荐

