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

无需调整目录结构,为mylib编写setup.py实现可编辑pip安装

解决方案:无需修改目录结构,通过setup.py实现需求

完全可以在当前mylib目录下添加setup.py文件,实现可编辑安装、包导入和命令行脚本运行的需求,同时不破坏现有用户的工作流。

1. 添加setup.py文件

在mylib根目录下创建setup.py,内容如下:

from setuptools import setup, find_packages

setup(
    name="mylib",
    version="0.1.0",
    packages=find_packages(),
    scripts=["py_script"],
    include_package_data=True,
)

参数说明:

  • packages=find_packages():自动识别当前目录下所有包含__init__.py的子包(lib、tools以及mylib本身),确保from mylib.tools import useful_tool这类导入能正常工作。
  • scripts=["py_script"]:将py_script注册为系统/虚拟环境的可执行命令,安装后直接在命令行输入py_script即可运行。
  • include_package_data=True:确保后续如果添加非Python文件(如配置、资源)时能被正确包含(当前场景可选,但建议保留)。

2. 执行可编辑安装

在mylib的父目录下运行以下命令(或进入mylib目录后执行pip install -e .):

pip install -e ./mylib

-e参数表示可编辑安装,修改mylib内的代码会实时生效,无需重新安装。

3. 验证功能

  • 包导入验证:新建任意Python文件,写入from mylib.tools import useful_tool并运行,无报错即说明导入正常。
  • 命令行脚本验证:直接在终端输入py_script,脚本能正常执行即符合要求。

4. 兼容现有用户工作流

现有用户通过手动将mylib父目录添加到PYTHONPATH、将mylib目录添加到PATH的方式使用库,不会被破坏:

  • 可编辑安装后,pip会在Python的site-packages目录中添加一个.pth文件,指向mylib目录,效果和手动添加PYTHONPATH一致,两种方式互不冲突。
  • 对于命令行运行py_script,现有用户通过PATH直接调用mylib内的脚本,和pip安装后生成的可执行链接共存,用户可任选一种方式使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:03:24