我有一个包含许多文件夹的 git 存储库,其中一个是可使用 pip 安装的 python 模块,如下所示:
repo.git/
repo.git/folder1/
repo.git/folder2/
repo.git/mymodule/
repo.git/mymodule/__init__.py
repo.git/mymodule/setup.py
repo.git/mymodule/...
现在我必须执行以下操作才能安装:
git clone http://server/repo.git
cd repo
pip install mymodule
cd ..
rm -rf repo
是否可以直接使用 pip 安装模块而无需显式克隆?
I tried:
pip install git+https://server/repo.git/mymodule/
pip install git+https://server/repo.git:mymodule/
但我得到:
IOError: [Errno 2] No such file or directory: '/tmp/pip-88tlLm-build/setup.py'
有一个拉取请求 https://github.com/pypa/pip/pull/1215关于这个功能,一个月前好像已经合并到develop分支了。语法是下列的 https://github.com/pnasrat/pip/commit/abf27b5bd207024b35885fd1fddd7803b488a3d4:
pip install -e "git+https://git.repo/some_repo.git#egg=$NAME_OF_PACKAGE&subdirectory=$SUBDIR_IN_REPO" # install a python package from a repo subdirectory
我们可能需要等待一段时间才能将其合并到 master 并进行分发。
UPDATE:现在可以使用并记录在https://pip.pypa.io/en/stable/cli/pip_install/#vcs-support https://pip.pypa.io/en/stable/cli/pip_install/#vcs-support如下:
对于 setup.py 不在项目根目录中的项目,
使用“子目录”组件。 “子目录”组件的值
应该是从项目根目录开始到 setup.py 的路径
位于。
因此,如果您的存储库布局是:
- pkg_dir/
- setup.py # setup.py for package ``pkg``
- some_module.py
- other_dir/
- some_file
- some_other_file
你需要使用
pip install -e "vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir"
Note:确保用引号引起来,否则子目录将不起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)