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

时间:2018-06-22 21:11:15

标签: python git anaconda virtualenv conda

我首先使用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 /”中,而我希望它与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

1 个答案:

答案 0 :(得分:2)

我在配置中看不到任何鸡蛋文件。如果通过“蛋文件” 来自github的git仓库比罪魁祸首是选项-e —它 将软件包安装在"editable mode"中。您可能不需要它,所以 配置部分应如下所示:

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

PS。 #egg=shap并不意味着有一个鸡蛋文件,这只是一种方式 在VCS URL中为pip命名软件包(在您的情况下为git),以便pip在克隆存储库之前可以解析软件包名称和版本。