Q: 使用云服务器时,上传新的代码,终端运行python XXXX.py。但结果跑的是没修改过原来的代码。

A: 使用pip install -e .

pip install -e . 是一个用于安装 Python 包的开发模式(可编辑模式)的命令,通常用于本地开发。它的作用如下:


1. 可编辑模式(Editable Mode)

  • -e--editable 的缩写,表示以“可编辑”模式安装包。
  • 安装后,包的代码会直接链接到源代码所在的目录(而不是复制到 site-packages 中)。
  • 修改代码后立即生效,无需重新安装包(适合开发调试)。

2. . 的含义

  • . 表示当前目录,命令会在当前目录下查找 setup.pypyproject.toml 文件。
  • 根据这些文件中的配置(如包名、依赖、版本等)安装包。

3. 实际效果

  • 包会被安装到 Python 环境的 site-packages 目录,但会生成一个 .pth 文件egg-link 文件,指向项目的本地目录。
  • 例如:
    1
    /path/to/your/project
    修改项目中的代码后,下次导入包时会直接使用最新的代码。

4. 适用场景

  • 开发阶段:频繁修改代码时,无需反复执行 pip install .
  • 依赖管理:其他项目可以通过 pip install -e . 直接依赖本地开发的包。

5. 示例

假设你的项目目录结构如下:

1
2
3
4
my_project/
├── setup.py
└── my_package/
└── __init__.py

执行 pip install -e . 后:

  • my_package 会被安装到 Python 环境。
  • 修改 my_package/__init__.py 后,改动会立即生效,无需重新安装。

6. 注意事项

  • 需要项目目录包含 setup.pypyproject.toml 文件(用于定义包信息)。
  • 生产环境中一般不使用 -e 模式,而是通过 pip install . 安装固定版本。

总结

pip install -e . 是一种高效的开发方式,允许代码修改后实时生效,适合需要频繁调试的 Python 项目。