如何使用 pip 安装来自 github 的 egg 文件而不是在当前目录中,而是在 conda env 目录中?

How to have egg files from github install with pip not in current directory but in the conda env directory?

我正在使用 conda、pip 和 yml 配置文件创建一个 python env,首先使用:

conda env create -f test.yml -n test_pip

然后

conda env update -f test.yml -n test_pip

使用以下 .yml 文件(仅供测试):

channels:
- defaults
- conda-forge
dependencies:
- python=3.5
- numpy
- scipy
- scikit-learn
- jupyter
- ipykernel
- requests
- pandas
- seaborn
- click
- openpyxl
- matplotlib
- pip:
  - watermark
  - "-e git+https://github.com/slundberg/shap#egg=shap"
  - pytest
  - sklearn
  - autopep8

它工作正常,但 egg 文件安装在当前目录 "src/shap/" 而我希望它与所有其他 python 由 conda 或 pip 安装的包一起安装:

/xxx/anaconda/envs/test_pip

我参加了这个测试 github 目录(我知道我可以直接使用 pip install 安装它)但我想稍后使用我自己的 git 目录。

这里为什么没有安装egg?

/xxx/anaconda/envs/test_pip/lib/python3.5/site-packages/

这是我找到pip和conda安装的其他包的地方。

有什么理由吗?我怎样才能改变它?

我正在使用:

anaconda 4.2.0
conda 4.5.1
pip 9.0.3

我在你的配置中没有看到任何 egg file。如果 "egg file" 你 来自 github 的 git 存储库意味着罪魁祸首是选项 -e — 它 在 "editable mode" 中安装软件包。你可能不需要它,所以 配置部分应如下所示:

- pip:
    …
  - "git+https://github.com/slundberg/shap#egg=shap"
    …

PS。 #egg=shap 不代表有egg文件,只是方法 在 VCS 中为 pip 命名包(在您的情况下为 git)URL,以便 pip 可以在克隆存储库之前解析包名称和版本。