Is it possible to use pip to install a package from a private GitHub repository?
Hire the world's top talent on demand or became one of them at Toptal: https://topt.al/25cXVn
and get $2,000 discount on your first invoice
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Lost Jungle Looping
--
Chapters
00:00 Is It Possible To Use Pip To Install A Package From A Private Github Repository?
01:15 Accepted Answer Score 620
01:56 Answer 2 Score 45
02:09 Answer 3 Score 101
02:28 Answer 4 Score 58
02:42 Thank you
--
Full question
https://stackoverflow.com/questions/4830...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #git #github #pip
#avk47
ACCEPTED ANSWER
Score 620
You can use the git+ssh URI scheme, but you must set a username. Notice the git@ part in the URI:
pip install git+ssh://git@github.com/echweb/echweb-utils.git
Also read about deploy keys.
PS: In my installation, the "git+ssh" URI scheme works only with "editable" requirements:
pip install -e URI#egg=EggName
Remember: Change the : character that git remote -v prints to a / character before using the remote's address in the pip command:
$ git remote -v
origin git@github.com:echweb/echweb-utils.git (fetch)
# ^ change this to a '/' character
If you forget, you will get this error:
ssh: Could not resolve hostname github.com:echweb:
nodename nor servname provided, or not known
ANSWER 2
Score 101
As an additional technique, if you have the private repository cloned locally, you can do:
pip install git+file://c:/repo/directory
More modernly, you can just do this (and the -e will mean you don't have to commit changes before they're reflected):
pip install -e C:\repo\directory
ANSWER 3
Score 58
You can do it directly with the HTTPS URL like this:
pip install git+https://github.com/username/repo.git
This also works just appending that line in the requirements.txt in a Django project, for instance.
ANSWER 4
Score 45
It also works with Bitbucket:
pip install git+ssh://git@bitbucket.org/username/projectname.git
Pip will use your SSH keys in this case.