setup.py中entry_points正常,切换setup.cfg后无法找到mycli命令
console_scripts从setup.py迁移到setup.cfg后命令无法调用的问题解决
问题背景
原本在setup.py中通过entry_points配置console_scripts:
# 原setup.py片段 setup( # ... 其他配置项 entry_points={ 'console_scripts': [ 'mycli = mypackage.cli:main', ], } )
安装后可正常通过mycli命令运行应用。
将entry_points迁移至setup.cfg,setup.py仅保留基础调用:
# 迁移后的setup.py from setuptools import setup setup()
# setup.cfg片段 [options.entry_points] console_scripts = mycli = mypackage.cli:main
本地执行pip install .安装后,终端提示找不到mycli命令。
排查过程
- 验证entry_points配置:执行
pip show <your-package-name>,查看输出的Entry-points部分,确认console_scripts的mycli配置已被正确识别。 - 检查环境PATH:排查发现pyenv管理的Python环境中,脚本安装目录未被正确加入系统PATH,导致终端无法定位到生成的
mycli可执行文件。
解决方法
- 查看当前PATH配置,确认pyenv相关目录是否存在:
需要确保echo $PATH$HOME/.pyenv/shims和当前激活的pyenv环境bin目录(如$HOME/.pyenv/versions/your-env/bin)在PATH中。 - 若目录缺失,在shell配置文件(
.bashrc、.zshrc等)中添加:export PATH="$HOME/.pyenv/shims:$PATH" export PATH="$HOME/.pyenv/versions/your-env/bin:$PATH" - 重新加载shell配置:
source ~/.bashrc # 对应bash环境 # 或 source ~/.zshrc # 对应zsh环境 - 再次尝试调用
mycli命令,即可正常执行。
内容的提问来源于stack exchange,提问作者red888
相关产品推荐
相关产品推荐

