Trying to pip
install a repo's specific branch. Google tells me to
pip install https://github.com/user/repo.git@branch
The branch's name is issue/34/oscar-0.6
so I did pip install https://github.com/tangentlabs/django-oscar-paypal.git@/issue/34/oscar-0.6
but its returning a 404.
How do I install this branch?
pip install https://github.com/user/repo.git@branch
doing pip install -U git+https://github.com/moskomule/anatome.git@dev
worked. Perhaps remove the extra /
?
Prepend the url prefix git+
(See VCS Support):
pip install git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6
And specify the branch name without the leading /
.
Using pip with git+ to clone a repository can be extremely slow (test with https://github.com/django/django@stable/1.6.x for example, it will take a few minutes). The fastest thing I've found, which works with GitHub and BitBucket, is:
pip install https://github.com/user/repository/archive/branch.zip
which becomes for Django master:
pip install https://github.com/django/django/archive/master.zip
for Django stable/1.7.x:
pip install https://github.com/django/django/archive/stable/1.7.x.zip
With BitBucket it's about the same predictable pattern:
pip install https://bitbucket.org/izi/django-admin-tools/get/default.zip
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:
https://github.com/user/repository/archive/branch.zip
.zip
with .tar.gz
, as the tar extractor works.
--depth 0
when cloning to make it more efficient (the entire git history is not needed to install a snapshot for pip). git-scm.com/docs/git-clone
pip install https://github.com/django/django/archive/ebaa08b.zip
.zip
(or .tar.gz
) would result in downloading just a snapshot of the repo.
pip install apache-airflow[crypto, slack]
to install these extras with the archive version. I tried pip install https://github.com/apache/incubator-airflow/archive/master.zip[crypto, slack]
but this breaks the URL and installation.
Instructions to install from private repo using ssh credentials:
$ pip install git+ssh://git@github.com/myuser/foo.git@my_version
To install a package from a subdirectory, say stackoverflow
$ pip install git+ssh://git@github.com/myuser/foo.git@my_version#subdirectory=stackoverflow
https://pip.pypa.io/en/stable/topics/vcs-support/
Just to add an extra, if you want to install it in your pip file it can be added like this:
-e git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6#egg=django-oscar-paypal
It will be saved as an egg though.
-e
. See: stackoverflow.com/a/34518202/451710
-e
flag to avoid any possible conflict with an already existent package. I guess is a matter of choice
-e git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6#egg=django-oscar-paypal[PDF]
-e
does not actually seem to be required.
-e
This worked like charm:
pip3 install git+https://github.com/deepak1725/fabric8-analytics-worker.git@develop
Where :
develop: Branch
fabric8-analytics-worker.git : Repo
deepak1725: user
You 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 https://github.com/user/repository/archive/branch.zip
Alternatively, I suggest you may install using the .whl
file if this exists.
pip install https://github.com/user/repository/archive/branch.whl
It's pretty new format, newer than egg files. It requires wheel and setuptools>=0.8 packages. You can find more in here.
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+https://github.com/<project_owner>/<project_name>
For SSH
pip install git+ssh://git@github.com/<project_owner>/<project_name>.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+https://github.com/nezhar/django-model-prefix@a5cabf1ac210b6358ea358b1d268d802114d85d4
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+https://github.com/anexia-it/jsonschema@draft2020-12#egg=jsonschema[format]
to me your suggestion from question work e.g.
pip install https://github.com/user/repo.git@branch
translating concretely to doing
pip install -U git+https://github.com/moskomule/anatome.git@dev
worked. Perhaps remove the extra /
is redundant. My output:
(original_anatome_env) brando~/ultimate-anatome ❯ pip install -U git+https://github.com/moskomule/anatome.git@dev
Collecting git+https://github.com/moskomule/anatome.git@dev
Cloning https://github.com/moskomule/anatome.git (to revision dev) to /private/var/folders/x4/0xq0brj57xz3dbhbmblypbm00000gr/T/pip-req-build-62d_ghd2
Running command git clone -q https://github.com/moskomule/anatome.git /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 https://github.com/moskomule/anatome.git 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!
For windows & pycharm setup:
If you are using pycharm and If you want to use pip3 install git+https://github.com/...
firstly, you should download git from https://git-scm.com/downloads
then restart pycharm
and you can use pycharm terminal to install what you want
https://i.stack.imgur.com/1U4qQ.png
Success story sharing
@
?@
and parts after that is optional.pip install -U git+https://github.com/danreeves/wagtailgmaps@3.0.0
git+https://github.com/adiralashiva8/robotframework-metrics@v3.1.4
into your requirements.txt and then install withpip install -r requirements.txt
. This will install Tag v3.1.4 from master branch..git
in URL? It originates from the url shown on github clone button click.