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



我正在使用conda,pip和yml配置文件创建一个python环境:

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/"中,而我想让它与 conda 或 pip 安装的所有其他 python 包一起安装:

/xxx/anaconda/envs/test_pip

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

为什么鸡蛋没有安装在这里?

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

这是我对 pip 和 conda 安装的其他软件包进行鳍鱼的地方。

有什么原因吗?我该如何改变它?

我正在使用:

anaconda 4.2.0
conda 4.5.1
pip 9.0.3

我在您的配置中没有看到任何鸡蛋文件。如果通过"鸡蛋文件"你 来自 GitHub 的 Git 存储库的意思是罪魁祸首是选项-e— 它 在"可编辑模式"下安装包。你可能不需要它,所以 配置的部分应如下所示:

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

附言。#egg=shap并不意味着有鸡蛋文件,这只是 在 VCS(在本例中为 git(URL 中命名pip包,以便pip可以在克隆存储库之前解析包名称和版本。

最新更新