Trying to pip install a repo's specific branch. Google tells me to
pip install The branch's name is issue/34/oscar-0.6 so I did pip install but its returning a 404.
How do I install this branch?
19 Answers
Prepend the url prefix git+ (See VCS Support):
pip install git+ And specify the branch name without the leading /.
Using pip with git+ to clone a repository can be extremely slow (test with for example, it will take a few minutes). The fastest thing I've found, which works with GitHub and BitBucket, is:
pip install which becomes for Django master:
pip install for Django stable/1.7.x:
pip install With BitBucket it's about the same predictable pattern:
pip install Here, the master branch is generally named default. This will make your requirements.txt installing much faster.
Some other answers mention variations required when placing the package to be installed into your requirements.txt. Note that with this archive syntax, the leading -e and trailing #egg=blah-blah are not required, and you can just simply paste the URL, so your requirements.txt looks like:
9Instructions to install from private repo using ssh credentials:
$ pip install git+ssh://git@ To install a package from a subdirectory, say stackoverflow
$ pip install git+ssh://git@ 3Just to add an extra, if you want to install it in your pip file it can be added like this:
-e git+ It will be saved as an egg though.
6This worked like charm:
pip3 install git+ Where :
develop: Branch
fabric8-analytics-worker.git : Repo
deepak1725: user
1You used the egg files install procedure. This procedure supports installing over git, git+http, git+https, git+ssh, git+git and git+file. Some of these are mentioned.
It's good you can use branches, tags, or hashes to install.
@Steve_K noted it can be slow to install with "git+" and proposed installing via zip file:
pip install Alternatively, I suggest you may install using the .whl file if this exists.
pip install It's pretty new format, newer than egg files. It requires wheel and setuptools>=0.8 packages. You can find more in here.
1to me your suggestion from question work e.g.
pip install translating concretely to doing
pip install -U git+ worked. Perhaps remove the extra / is redundant. My output:
(original_anatome_env) brando~/ultimate-anatome ❯ pip install -U git+ Collecting git+ Cloning (to revision dev) to /private/var/folders/x4/0xq0brj57xz3dbhbmblypbm00000gr/T/pip-req-build-62d_ghd2 Running command git clone -q /private/var/folders/x4/0xq0brj57xz3dbhbmblypbm00000gr/T/pip-req-build-62d_ghd2 Running command git checkout -b dev --track origin/dev Switched to a new branch 'dev' Branch 'dev' set up to track remote branch 'dev' from 'origin'. Resolved to commit 4b576e51cb1824a57ea04974e0f92b5a6143294d Requirement already satisfied: torch>=1.10.0 in /Users/brando/anaconda3/envs/metalearning/envs/original_anatome_env/lib/python3.9/site-packages (from anatome==0.0.6) (1.10.0) Requirement already satisfied: torchvision>=0.11.1 in /Users/brando/anaconda3/envs/metalearning/envs/original_anatome_env/lib/python3.9/site-packages (from anatome==0.0.6) (0.11.1) Requirement already satisfied: typing-extensions in /Users/brando/anaconda3/envs/metalearning/envs/original_anatome_env/lib/python3.9/site-packages (from torch>=1.10.0->anatome==0.0.6) (3.10.0.2) Requirement already satisfied: pillow!=8.3.0,>=5.3.0 in /Users/brando/anaconda3/envs/metalearning/envs/original_anatome_env/lib/python3.9/site-packages (from torchvision>=0.11.1->anatome==0.0.6) (8.4.0) Requirement already satisfied: numpy in /Users/brando/anaconda3/envs/metalearning/envs/original_anatome_env/lib/python3.9/site-packages (from torchvision>=0.11.1->anatome==0.0.6) (1.21.4) Building wheels for collected packages: anatome Building wheel for anatome (setup.py) ... done Created wheel for anatome: filename=anatome-0.0.6-py3-none-any.whl size=10167 sha256=63b12a36f33deb8313bfe7756be60bd08915b8ba36711be47e292b590df70f61 Stored in directory: /private/var/folders/x4/0xq0brj57xz3dbhbmblypbm00000gr/T/pip-ephem-wheel-cache-rde_ngug/wheels/19/e4/be/01479e8cba62ae8cdcd501cd3bf49e199f2bb94732a6a1b006 Successfully built anatome Installing collected packages: anatome Attempting uninstall: anatome Found existing installation: anatome 0.0.5 Uninstalling anatome-0.0.5: Successfully uninstalled anatome-0.0.5 Successfully installed anatome-0.0.6 0.6.0 is the dev branch version number and 0.5.0 is the master, so it worked!
Pip is a package manager of python. You can download Python libraries from some Python repositories like PyPI. You can also download libraries from a git repository. This is gonna be the issue to be explained in this article.
As you may know, you can use two protocols which are http and ssh to do something on git repositories. Using protocol ssh instead of http may provide some ease of use. Because of nature of ssh, you can do something with your primary/public keys. So, you don't have to input your credentials all the time. But I'll be giving a way for both;
Here are the example with Github repositories;
For HTTP
pip install git+ For SSH
pip install git+ssh://git@ For Local Git Repository
pip install git+file///path/to/your/git/project/ Installing a special branch, tag or commit
The above commands will only install what is available in the default branch. In most of the cases you want to target a specific branch, tag or maybe even a commit. This can be achieved by providing @ argument to the git string.
Example:
pip install git+ Providing options for extras_require
Some packages provide extras_require inside setup.py or setup.cfg. In order to target them during the installation process, the #egg argument must be provided as a value in contains the name of the package and the option for the extras_require.
Example:
pip install git+ For windows & pycharm setup:
If you are using pycharm and If you want to use pip3 install git+
- firstly, you should download git from
- then restart pycharm
- and you can use pycharm terminal to install what you want
