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

setuptools执行setup.py install后包函数找不到,develop模式正常

解决setup.py install后无法导入db的问题

我之前踩过完全一样的坑!这种情况大概率是你的setuptools打包配置或者包的导入结构出了问题——毕竟develop模式直接用本地源码目录,而install是把打包后的文件复制到site-packages,两者的包加载逻辑有差异。下面是我总结的排查和解决步骤:

1. 先检查setup.py的打包范围

你大概率是没把包含db变量的模块正确纳入打包范围。比如:

  • 如果你的db定义在your_package/core.py这类子模块里,但setup.py里的packages参数只写了['your_package']而没用find_packages(),就会导致子模块没被打包进安装包。

正确的setup.py应该这样写:

from setuptools import setup, find_packages

setup(
    name="your_package",
    version="0.1.0",
    packages=find_packages(),  # 自动扫描所有子模块,避免漏包
    # 其他配置(比如entry_points、install_requires等)...
)

2. 确认包的__init__.py是否导出了db

即使模块被正确打包了,如果db只存在子模块里,没在根包的__init__.py中导入,直接from your_package import db也会失败。

比如db定义在your_package/core.py,那你需要在your_package/__init__.py里加上:

# 把db变量导入到根包的命名空间
from .core import db

这样dir(your_package)里才会出现db这个变量。

3. 清理旧打包缓存,重新安装

有时候修改了代码但没清理旧的build文件,导致安装的还是旧版本。执行以下命令彻底清理后再重新安装:

# 先卸载已安装的包
pip uninstall -y your_package
# 删除build、dist和egg-info目录
rm -rf build/ dist/ your_package.egg-info/
# 重新打包安装
python setup.py install

4. 验证site-packages里的包结构

安装完成后,找到你的Python环境的site-packages/your_package目录,看看里面有没有包含db的那个.py文件。如果缺失,说明打包时确实漏了模块,回到第一步检查find_packages()的配置。

最后再试一次导入

完成上面的步骤后,打开Python终端测试:

import your_package
print(dir(your_package))  # 现在应该能看到'db'了
from your_package import db  # 不会再报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:15:04