我正在尝试发布一个演示存储库(人们可以直接运行python脚本来演示一些实验)。我还需要包含依赖项(numpy等)。我想用pip来简化它。
我已经创建了一个列出所有依赖项的setup.py文件。我现在想将我的repo代码安装到当前目录,并将所有依赖项安装到默认路径(例如./venv/lib/python2.7
,venv/src/
等)。
现在,如果我跑了
pip install -e git+http://github.com/petered/my_repo.git#egg=my_repo
一切正常,但my_repo
中的代码保存在/venv/src
中(而我希望它在根目录中)。
我也可以跑
pip install -e git+http://github.com/petered/my_repo.git#egg=my_repo --target=.
哪个安装根(当前)目录中的所有内容。但是,所有依赖关系也会在此目录中结束。
如何在当前目录中只安装软件包的源代码,而在依赖项的默认目录中安装所有依赖项?
答案 0 :(得分:1)
我的项目通常有一个setup.py
文件,用于定义所有依赖项。要在virtualenv中安装项目,我首先克隆存储库,然后只需install the cloned repository:
git clone http://github.com/petered/my_repo.git .
pip install -e .
这将安装my_repo
,但会将所有依赖项安装到lib/python2.7/site-packages/
。
您会注意到此布局可以稍后将my_repo
发布到PyPI,或者如果您希望将其作为依赖项安装到lib/...
,因为库本身并不知道它是如何安装的。
每当我有几个“私有依赖”(闭源,仅在我们的git服务器上可用)时,我会编写安装说明,如
git clone http://github.com/petered/my_repo.git
git clone http://github.com/petered/my_repo_dependency_1.git
git clone http://github.com/petered/my_repo_dependency_2.git
pip install -e my_repo_dependency_1
pip install -e my_repo_dependency_2
pip install -e my_repo
自述文件中的。这将安装所有私有依赖项,但在lib/python2.7/site-packages/
。