使用setuptools制作Python包从GitHub安装后执行命令报错:from: command not found
解决自定义Python包命令调用报错
line 1: from: command not found的问题 核心原因
这个错误是因为系统把你的Python脚本当成shell脚本执行了,根本没交给Python解释器处理,大概率是脚本缺了正确的shebang行,或者setup.py的入口配置出了问题。
具体修复步骤
1. 给入口脚本加shebang行
在你包里面作为命令入口的Python文件最顶部,必须加一行指定解释器的代码,这行必须是文件第一行,前面不能有空行或注释:
#!/usr/bin/env python3
如果是Anaconda环境,写#!/usr/bin/env python也可以。
2. 检查setup.py的入口配置
确保setup.py里的entry_points(推荐用这个)或者scripts字段配置正确,示例如下:
from setuptools import setup setup( # 其他配置比如name、version之类的... entry_points={ 'console_scripts': [ '你的命令名=你的包名.入口模块名:入口函数名', ], } # 要是用scripts字段(不推荐,灵活性差),这么写: # scripts=['scripts/你的脚本文件名.py'], )
如果用scripts字段,要先给脚本加可执行权限:
chmod +x scripts/你的脚本文件名.py
3. 重新安装包
先卸载已装的版本:
pip uninstall 你的包名
激活Anaconda环境后,从GitHub重新安装:
pip install git+https://github.com/你的用户名/你的仓库名.git
4. 验证命令路径
装完后检查命令的实际位置,确认它在Anaconda环境的bin目录里:
which 你的命令名
输出应该类似/你的conda路径/envs/你的环境名/bin/你的命令名,如果指向系统bin目录,说明没激活对环境,重新激活再装。
额外检查
- 确认入口脚本里的
from ... import ...是正确的Python语法,没写错。 - 要是用了虚拟环境,务必确保激活后再操作。
内容的提问来源于stack exchange,提问作者Tiago Cabral
相关产品推荐
相关产品推荐

