We’d like to use pip with github to install private packages to our production servers. This question concerns what needs to be in the github repo in order for the install to be successful.
Assuming the following command line (which authenticates just fine and tries to install):
pip install git+ssh://<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ccaba5b88caba5b8a4b9aee2afa3a1">[email protected]</a>/BlahCo/search/tree/prod_release_branch/ProductName
What needs to reside in the ProductName? Is it the contents of what would normally be in the tar file after running setup.py with the sdist option, or is the actual tar.gz file, or something else?
I’m asking here because I’ve tried several variations and can’t make it work. Any help appreciated.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
You need the whole python package, with a setup.py file in it.
A package named foo would be:
foo # the installable package ├── foo │ ├── __init__.py │ └── bar.py └── setup.py
And install from github like:
$ pip install git+ssh://<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1e79776a5e79776a766b7c307d7173">[email protected]</a>/myuser/foo.git or $ pip install git+https://github.com/myuser/<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5c3a3333723b35281c2a6d6e6f">[email protected]</a> or $ pip install git+https://github.com/myuser/<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4721282869202e330729223025352629242f">[email protected]</a>
More info at https://pip.pypa.io/en/stable/reference/pip_install/#vcs-support
Method 2
I had similar issue when I had to install from github repo, but did not want to install git , etc.
The simple way to do it is using zip archive of the package. Add /zipball/master to the repo URL:
$ pip install https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master Downloading/unpacking https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master Downloading master Running setup.py egg_info for package from https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master Installing collected packages: django-debug-toolbar-mongo Running setup.py install for django-debug-toolbar-mongo Successfully installed django-debug-toolbar-mongo Cleaning up...
This way you will make pip work with github source repositories.
Method 3
If you want to use requirements.txt file, you will need git and something like the entry below to anonymously fetch the master branch in your requirements.txt.
For regular install:
git+git://github.com/celery/django-celery.git
For “editable” install:
-e git://github.com/celery/django-celery.git#egg=django-celery
Editable mode downloads the project’s source code into ./src in the current directory. It allows pip freeze to output the correct github location of the package.
Method 4
Clone target repository same way like you cloning any other project:
git clone <a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="27404e5367404e534f52450944484a">[email protected]</a>:myuser/foo.git
Then install it in develop mode:
cd foo pip install -e .
You can change anything you wan’t and every code using foo package will use modified code.
There 2 benefits ot this solution:
- You can install package in your home projects directory.
- Package includes
.gitdir, so it’s regular Git repository. You can push to your fork right away.
Method 5
Here is the simple solution
With git
pip install git+https://github.com/jkbr/httpie.git
Without git
pip install https://github.com/jkbr/httpie/tarball/master
or
pip install https://github.com/jkbr/httpie/zipball/master
or
pip install https://github.com/jkbr/httpie/archive/master.zip
Note: You need a python package with the setup.py file in it.
Method 6
you can try this way in Colab
!git clone https://github.com/UKPLab/sentence-transformers.git !pip install -e /content/sentence-transformers import sentence_transformers
Method 7
Below format could be use to install python libraries via pip from GitHub.
pip install <LibName>@git+ssh://<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d3b4baa793b4baa7bba6b1fdb0bcbe">[email protected]</a>/<username>/<LibName>#egg<LibName>
Method 8
Tested Optimized Ubuntu Solution using the terminal command:
Step 1:
In a selected directory clone the git repo.
Example:
$ git clone https://github.com/httpie/httpie.git
Step 2:
select/change path to the directory, to the cloned folder
$ cd ClonedFolderName
Step 3:
Enter following command to install that package
ColnedFolderName(directory Name) $ pip install ./
pip install ./ is command to enter in cloned directory name
Note: Make sure setup.py is inside cloned repo. (which is by default in it)
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0