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

使用setuptools(setup.py install)将自定义Python项目部署至site-packages

解决自定义Python项目无法从site-packages导入的问题

我太懂这种手动复制源码的痛苦了——每次改完代码还要重复操作,效率低到爆炸。咱们来一步步搞定这个问题:

1. 先确认你的setup.py配置是否正确

很多时候导入失败的根源是setup.py没配置对,导致生成的egg文件不包含正确的模块结构。推荐用find_packages()自动识别你的包,而不是手动写包名,示例配置如下:

from setuptools import setup, find_packages

setup(
    name="your_custom_package",  # 你的包名,导入时要用这个名字
    version="0.1.0",
    packages=find_packages(),  # 自动扫描所有含__init__.py的子目录
    author="Your Name",
    description="A custom Python package",
    # 其他可选配置,比如entry_points、install_requires等
)

注意:你的项目结构要符合规范——根目录下要有一个和包名一致的文件夹,里面必须包含__init__.py(可以是空文件,但必须存在),比如:

your_project/
├── setup.py
└── your_custom_package/
    ├── __init__.py
    └── your_module.py

2. 使用开发模式(推荐!)

这才是解决“修改代码后重复安装”痛点的最佳方案,它不会把代码复制到site-packages,而是在site-packages里创建一个链接指向你的本地项目目录,修改代码后直接生效,无需重新安装。

在项目根目录(setup.py所在的文件夹)执行以下命令:

pip install -e .
# 或者用旧一点的方式:python setup.py develop

执行后,你就可以在任何Python脚本里直接导入你的包了,而且修改本地代码后立即生效。

3. 检查Python环境是否匹配

有时候你可能同时安装了多个Python版本(比如系统Python和conda环境),导致python setup.py install把egg安装到了另一个环境的site-packages里,而你运行脚本用的是另一个Python解释器。

可以用以下命令排查:

  • 查看当前脚本使用的Python路径:which python(Linux/macOS)或where python(Windows)
  • 查看Python的site-packages路径:python -c "import sys; print('\n'.join(sys.path))"
    确认生成的.egg文件是否在这个路径列表里。

4. 如果坚持用常规install方式

如果不想用开发模式,确保安装后你的包能被识别,可以尝试:

  • 执行python setup.py install后,检查site-packages里是否有你的包的.egg文件,或者是否有解压后的包目录
  • 如果只有.egg文件无法导入,可以用easy_install your_package_name-0.1.0-py3.x.egg手动安装(替换成你的egg文件名)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:11:42