简短版本:是否可以在需求中使用 -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 不会将其显示为已安装的软件包。
当像这样混合两种甲氨时:
- 通过requirements.txt安装软件包(使用 -e 开关(
- 卸载它
- 将其克隆成(例如。~/工作区/(
- 在软件包内使用"pip install -e ."安装它
然后你最终会陷入一个糟糕的境地。 'virtualenv/src/' 目录不会被删除,并被识别为 pydev 中软件包的源代码。 当运行使用该包的 Django 实例时,它会从 '~/workspace/' 运行包代码。
建议
使用第一种方法,将该源目录作为项目导入pydev('virtualenv/src/'(,并在您选择的文件管理器中创建一个链接。 它将使您免于复杂的错误。