创建PyPI项目后安装无法导入sqlserverconnect求助
问题分析与解决
你的导入错误根源是项目结构不匹配包名配置,具体问题和解决步骤如下:
问题原因
你的pyproject.toml中指定包名为sqlserverconnect,但项目的src目录下没有同名的子包目录,直接放置了模块文件。setuptools遵循src-layout规范时,需要src/[包名]/作为包的根目录,否则无法正确识别并打包出对应名称的模块,导致安装后系统找不到sqlserverconnect模块。
解决步骤
1. 调整项目结构
将src下的文件移动到与包名同名的子目录中,最终结构应为:
📁 <root>/ ├─📄 pyproject.toml └─📁 src/ └─📁 sqlserverconnect/ ├─📄 dbConnector.py └─📄 __init__.py
2. (可选)优化导入体验
如果希望用户无需深入层级就能导入dbConnector的内容,可以在sqlserverconnect/__init__.py中添加导出语句:
from .dbConnector import *
3. 重新打包上传
- 清理旧构建产物:
# Linux/macOS rm -rf dist/ build/ *.egg-info # Windows rmdir /s dist build *.egg-info - 重新构建包:
python -m build - 重新上传到Test PyPI:
python -m twine upload --repository testpypi dist/*
4. 重新安装并测试
在新环境中安装更新后的包,然后测试导入:
import sqlserverconnect # 或(如果做了导出优化) from sqlserverconnect import dbConnector
内容的提问来源于stack exchange,提问作者ShanN
相关产品推荐
相关产品推荐

