使用 requirements.txt 将可编辑的工作目录 pip 安装到自定义路径

pip install editable working dir to custom path using requirements.txt

短版: 是否可以将 requirements.txt 中的 -e 参数与应安装可编辑包的路径一起使用?


第一种方法

requirements.txt:

-e git+https://github.com/snake-soft/imap-storage.git#egg=imap-storage

专业版:自动安装

反对: 可编辑目录在 virtualenv src 文件夹内(不在工作区)


第二种方法(编辑:在你知道自己在做什么之前不要使用它,看底部)

如果我克隆 repo 并像这样安装它(virtualenv 已激活):

cd /home/user/workspace
git clone https://github.com/snake-soft/imap-storage.git
pip install -e .

给出我想要的结构:

workspace
├── imap-storage
├── django-project  # uses imap-storage module

我有我想要的。存储库(imap-storage)与使用它的 django-project 平行放置。 它是可导入的,因为它安装在 virtualenv 中。

Pro: 可编辑目录在我的工作区内

反派:不自动化,不直观


目标


PS:还是我的想法完全错误,应该做一些完全不同的事情?

为什么我会问这么疯狂的问题?

我认为当(包和使用该包的 Django 项目)都在我的工作区内可编辑时,我可以让我的生活更轻松一些,因为我并行处理它们。

我的简历

我尝试了第二种方法,最后我决定更喜欢第一种方法。

原因

使用这两种方法,pydev 都不会将其显示为已安装的包。

当像这样混合两种方法时:

  1. 通过 requirements.txt 安装包(使用 -e 开关)
  2. 卸载它
  3. 将其克隆到(例如~/workspace/
  4. 使用包内的'pip install -e .'安装

那你就惨了。 'virtualenv/src/' 目录不会被删除,并且被识别为 pydev 中包的源。 当 运行 使用该包的 Django 实例时,它运行来自 '~/workspace/' 的包代码。

建议

使用第一种方法,将该源目录作为项目导入 pydev ('virtualenv/src/') 并在您选择的文件管理器中创建一个 link。 它将避免您犯下复杂的错误。