上传至PyPI的Python包pillaralgos可正常安装但导入报ModuleNotFoundError
问题描述
- 已构建Python包并上传至pypi,包可正常通过pip完成安装流程,但执行导入操作时会触发
ModuleNotFoundError错误 - 该错误可在全新搭建的conda环境中稳定复现,覆盖Ubuntu、MacOS、Windows三类操作系统,所有测试环境均为无历史残留配置的新建环境
- 此前遇到同类导入报错是源码文件夹命名错误导致,本次已排查排除该类问题
- 构建whl安装包所用的代码分支及对应本地源码文件夹均已核对,无路径配置错误
已执行的构建、上传、安装流程
# 本地构建安装包 python3 -m build # 上传包到pypi python3 -m twine upload dist/* # 安装发布的包 pip install pillaralgos
导入报错复现场景
执行导入命令的终端输出:
(pillar_env) jupyter-pomkos@jupyterubuntu:~$ python Python 3.8.8 (default, Feb 24, 2021, 21:46:12) [GCC 7.3.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. --------------------------------------------------------------------------- >>> import pillaralgos Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'pillaralgos' >>>
已完成的校验排查
- 包安装状态校验:
pip list命令可正常查询到目标包的版本记录(pillar_env) jupyter-pomkos@jupyterubuntu:~$ pip list Package Version ------------------ ------------------- # 输出内容截断 pexpect 4.8.0 pickleshare 0.7.5 pillaralgos 1.0.1 Pillow 8.2.0 pip 21.0.1 - 导入路径校验:经核对,Python解释器的
sys.path列表已完全包含包的实际安装目录(pillar_env) jupyter-pomkos@jupyterubuntu:~$ python Python 3.8.8 (default, Feb 24, 2021, 21:46:12) [GCC 7.3.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['', '/home/jupyter-pomkos/.conda/envs/pillar_env/lib/python38.zip', '/home/jupyter-pomkos/.conda/envs/pillar_env/lib/python3.8', '/home/jupyter-pomkos/.conda/envs/pillar_env/lib/python3.8/lib-dynload', '/home/jupyter-pomkos/.local/lib/python3.8/site-packages', '/home/jupyter-pomkos/.conda/envs/pillar_env/lib/python3.8/site-packages'] >>> - 安装位置校验:
pip show pillaralgos的输出显示,包已安装到当前conda环境的对应site-packages目录,路径与sys.path完全匹配(pillar_env) jupyter-pomkos@jupyterubuntu:~$ pip show pillaralgos --------------------------------------------------------------------------- Name: pillaralgos Version: 1.0.1 Summary: Algorithms for Pillar. Currently includes "mini" algorithms, nothing too sophisticated. Home-page: 对应代码仓库项目地址 Author: Peter Gates Author-email: pgate89@gmail.com License: UNKNOWN Location: /home/jupyter-pomkos/.conda/envs/pillar_env/lib/python3.8/site-packages Requires: Required-by: Note: you may need to restart the kernel to use updated packages. - Jupyter环境校验:导入报错同时出现在Jupyter控制台、JupyterLab Notebook及本地终端Python中,已确认Jupyter内核配置的解释器路径与当前conda环境完全一致(因错误为全平台全新环境复现,该项校验非核心排查环节)
内核配置文件内容:{ "argv": [ "/home/jupyter-pomkos/.conda/envs/pillar_env/bin/python", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "Pillar Env", "language": "python" }
待求方向
寻求该问题的定位思路与可落地的解决方案。
内容的提问来源于stack exchange,提问作者sc4s2cg
相关产品推荐
相关产品推荐

