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



简短版本:是否可以在需求中使用 -e 参数.txt并带有可编辑包的安装路径?


第一种方法

要求.txt:

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

优点:自动安装

魂斗罗:可编辑目录位于 virtualenv src 文件夹内(不在工作区中(


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

如果我克隆存储库并像这样安装它(虚拟环境已激活(:

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项目并行。 它是可导入的,因为它安装在虚拟环境中。

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

魂斗罗:非自动化,不直观


目标

  • pip install -r 要求.txt从 git 安装模块(如第一种方法(
  • 模块在 pythonpath of virtualenv -> 可导入
  • 模块的可编辑工作目录在我的工作区中(如第二种方法(

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

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

我想当两个(包和使用此包的 Django 项目(在我的工作区中都可编辑时,我可以让我的生活更轻松一点,因为我并行处理它们。

我的简历

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

原因

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

当像这样混合两种甲氨时:

  1. 通过requirements.txt安装软件包(使用 -e 开关(
  2. 卸载它
  3. 将其克隆成(例如。~/工作区/(
  4. 在软件包内使用"pip install -e ."安装它

然后你最终会陷入一个糟糕的境地。 'virtualenv/src/' 目录不会被删除,并被识别为 pydev 中软件包的源代码。 当运行使用该包的 Django 实例时,它会从 '~/workspace/' 运行包代码。

建议

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

最新更新