You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义Python库导入异常:仅部分模块可导入及内部引用问题

自定义Python库导入问题解决方案

1. 先确认规范的目录结构

你的库必须有正确的层级,每个子目录都要加空的__init__.py,示例结构:

mylib/
    __init__.py
    colors.py
    codes.py
    plot.py
    utils/
        __init__.py
        utils.py

缺了__init__.py的目录不会被Python识别为可导入的包。

2. 修正plot.py的导入路径

把plot.py里的绝对导入改成相对导入,避免环境路径冲突:

# 原错误写法
# from mylib.utils.utils import function

# 改为相对导入
from .utils.utils import function

如果utils目录的__init__.py已经导入了utils.py的函数,还可以简化成:

from .utils import function

3. 调整根目录__init__.py

别用from .module import *这种容易出问题的写法,显式导出需要对外暴露的模块:

# mylib/__init__.py
from . import colors
from . import codes
from . import plot

这样用户就能直接执行from mylib import codes、from mylib import plot正常导入。

4. 重新安装验证

先卸载现有版本:

pip uninstall mylib -y

再重新从GitHub安装:

pip install git+repo_url

之后测试导入是否正常。

关键配置检查

确保你的打包配置文件(setup.py或pyproject.toml)正确识别所有子包,比如setup.py里用find_packages()自动扫描:

from setuptools import setup, find_packages

setup(
    name="mylib",
    version="0.1",
    packages=find_packages(),
    # 其他必要配置(比如作者、依赖等)
)

如果没配置正确,utils这类子目录不会被打包进安装包,自然会出现找不到模块的错误。

内容的提问来源于stack exchange,提问作者itendswells

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 12:17:05