如何使用 pip 安装来自 github 的 egg 文件,而不是在当前目录中,而是在 conda env 目录中?
Posted
技术标签:
【中文标题】如何使用 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? 【发布时间】:2018-12-02 09:18:04 【问题描述】:我正在使用 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 目录。
为什么这里没有安装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
【问题讨论】:
【参考方案1】:我在您的配置中没有看到任何鸡蛋 文件。如果通过“蛋文件”你
意味着来自 github 的 git 存储库,而不是罪魁祸首是选项 -e
— 它
在"editable mode" 中安装包。你可能不需要它,所以
配置部分应如下所示:
- pip:
…
- "git+https://github.com/slundberg/shap#egg=shap"
…
PS。 #egg=shap
不代表有egg文件,只是这样
在 VCS(在您的情况下为 git)URL 中为 pip
命名包,以便 pip
在克隆存储库之前解析包名称和版本。
【讨论】:
我对“#egg=”感到困惑,但你说得对,我只想安装一个 git 存储库。 ***.com/questions/2051192/what-is-a-python-egg。对于这个 shap got 存储库,它就像一个魅力,也应该适用于我自己的 git 存储库。我不知道我为什么要使用“-e”,这是造成问题的原因。以上是关于如何使用 pip 安装来自 github 的 egg 文件,而不是在当前目录中,而是在 conda env 目录中?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 github 上的 master 分支安装 pip 模块? [复制]
Pip 可以在安装时安装 setup.py 中未指定的依赖项吗?