pip install from git repo branch - python

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?

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

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.

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 in other answers.
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 the documentation.

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

Related

can't pip install a branch [duplicate]

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?
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
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.
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 in other answers.
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 the documentation.
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

How to install Ansible on CentOS8

I am trying to install ansible on CentOS 8 but no success, After searching google i did following steps
yum install python3-pip
pip3 install ansible
but it shows following output and no ansible avaiable
[root#okd1 ~]# pip3 install ansible
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Requirement already satisfied: ansible in ./.local/lib/python3.6/site-packages
Requirement already satisfied: jinja2 in ./.local/lib/python3.6/site-packages (from ansible)
Requirement already satisfied: PyYAML in /usr/lib64/python3.6/site-packages (from ansible)
Requirement already satisfied: cryptography in /usr/lib64/python3.6/site-packages (from ansible)
Requirement already satisfied: MarkupSafe>=0.23 in ./.local/lib/python3.6/site-packages (from jinja2->ansible)
Requirement already satisfied: idna>=2.1 in /usr/lib/python3.6/site-packages (from cryptography->ansible)
Requirement already satisfied: asn1crypto>=0.21.0 in /usr/lib/python3.6/site-packages (from cryptography->ansible)
Requirement already satisfied: six>=1.4.1 in /usr/lib/python3.6/site-packages (from cryptography->ansible)
Requirement already satisfied: cffi!=1.11.3,>=1.7 in /usr/lib64/python3.6/site-packages (from cryptography->ansible)
Requirement already satisfied: pycparser in /usr/lib/python3.6/site-packages (from cffi!=1.11.3,>=1.7->cryptography->ansible)
i tried to manually download and install but still no success
curl -o ansible.rpm https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-2.8.5-1.el7.ans.noarch.rpm
[root#okd1 ~]# yum install ansible.rpm
Last metadata expiration check: 0:09:14 ago on Wed 25 Sep 2019 05:39:22 PM EDT.
Error:
Problem: conflicting requests
- nothing provides python-setuptools needed by ansible-2.8.5-1.el7.ans.noarch
- nothing provides python-six needed by ansible-2.8.5-1.el7.ans.noarch
- nothing provides PyYAML needed by ansible-2.8.5-1.el7.ans.noarch
- nothing provides python-jinja2 needed by ansible-2.8.5-1.el7.ans.noarch
- nothing provides python-paramiko needed by ansible-2.8.5-1.el7.ans.noarch
- nothing provides python2-cryptography needed by ansible-2.8.5-1.el7.ans.noarch
- nothing provides sshpass needed by ansible-2.8.5-1.el7.ans.noarch
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
then tried to deploy these packages but no success
[root#okd1 ~]# pip3 install python-setuptools
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting python-setuptools
Could not find a version that satisfies the requirement python-setuptools (from versions: )
No matching distribution found for python-setuptools
[root#okd1 ~]#
[root#okd1 ~]# pip2 install python-setuptools
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip2 install --user` instead.
Collecting python-setuptools
Could not find a version that satisfies the requirement python-setuptools (from versions: )
No matching distribution found for python-setuptools
You see one warning, which you should take very seriously if you don't want to destroy files, that were installed via yum packages. which is
Running pip install with root privileges is generally not a good idea.
Try pip3 install --user instead.
I suggest to try using a virtualenv. Using a virtualenv reduces the probability to destroy an existing setup and allows you to have different package versions per virtualenv. Just do not forget to activate your virtualenv before pip installing into it.
Unfortunately Ansible has (had at least when I used it last time) a small issue, that it will not be able to install packages if you use a virtualenv which does not include system site packages, so I'm not 100% sure, you will be successful.
I try to walk you through following:
1.) install virtualenv (either with yum or with pip install, but in order to not destroy anything in your existing setup you'd use pip install with the --user option)
2.) create a virtualenv for python3 with system site packages enabled as you will have issues with ansible and package installation otherwise
3.) enable your virtualenv (Do not forget this!)
4.) Check that you really enabled your virtualenv
5.) pip install ansible with the -U option
Try out ansible and specify the path to the python executable of your virtualenv in with the ansible_python_interpreter setting of ansible ( https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html )
Collecting python-setuptools
You might try to use a virtualenv in order to avoid conflicts with existing packages.
You might try something like:
sudo pip install --user virtualenv # or install virtualenv with yum if you know the package name.
then
virtualenv -p $(which python3) /root/ansiblevenv --system-site-packages
now activate the virutalenv
. /root/ansiblevenv/bin/activate # do not forget the space between the . and the /
Now check, that the active python is the one of the virtualenv
type python
you should see /root/ansiblevenv/bin/python instead if 'usr/bin/python' if not the virtualenv is not enabled properly
Now update pip (just in case)
pip install -U pip
and now try to install ansible
pip install -U ansible
You can also use the below steps to install Ansible on CentOS 8.
Step 1: Installation of EPEL repository
Ansible is not available in the default repository. So, to install it, we have to enable the EPEL repository. Firstly, we are going to install epel-release. Use the below command to install it.
sudo dnf -y install epel-release
Note: you can also use yum command instead of dnf
Step 2: Installing Ansible on CentOS 8
let’s install Ansible. Use the below command for this installation.
sudo dnf -y install ansible
Once the installation is completed, then use the below command to verify the version.
ansible --version
That's it. But you can read more about ansible installation on CentOS8 related commands for managed node and other details. You can visit my blog post for Ansible. You can use the URL below.
How to install and configure Ansible on CentOS 8

Update python library offline

I need to update offline a library in Python.
I have downloaded the library with pip download and then I try to update the library with the command:
pip install --no-index --user --find-links /tmp/pip/ --upgrade Werkzeug==0.15.5
which gives:
Ignoring indexes: https://...
Collecting Werkzeug==0.15.5
Installing collected packages: Werkzeug
Successfully installed Werkzeug-0.11.15
and then the library stays in the same version!
pip freeze | grep Wer
Werkzeug==0.11.15
Any ideas why this happens?
UPDATE: After the comment from #hoefling I rerun with the -vvv option and this is what I got:
pip install --no-index --user --find-links /tmp/pip2/ -vvv Werkzeug==0.15.5
Ignoring indexes: https://pypi:pypi#..../simple/
Collecting Werkzeug==0.15.5
0 location(s) to search for versions of Werkzeug:
Skipping link /tmp/pip2/werk/ (from -f); not a file
Found link file:///tmp/pip2/werk/Werkzeug-0.15.5-py2.py3-none-any.whl, version:
0.15.5
Local files found: /tmp/pip2/werk/Werkzeug-0.15.5-py2.py3-none-any.whl
Using version 0.15.5 (newest of versions: 0.15.5)
Installing collected packages: Werkzeug
Successfully installed Werkzeug-0.11.15
Cleaning up...
Try this command:
pip install Werkzeug-0.15.5.tar.gz
and the result must be like this:
Processing ./Werkzeug-0.15.5.tar.gz
Installing collected packages: Werkzeug
Running setup.py install for Werkzeug ... done
Successfully installed Werkzeug-0.15.5
This behaviour can happen because pip by default works with system Python which is located in /usr/bin/ on Linux. When installing the package, by giving Python --user flag your package is installed in your user's version of Python, probably located somewhere in ~/.local/.
To solve the problem you can install the package to your system Python, which is generally not recommended without --user flag. Another option is to use virtual environments and have the distribution that is made specifically for your project. Currently the recommended way is using venv.
$ python -m venv env
$ source env/bin/activate
(env) $ pip install ... (packages you need to install without --user flag)
(env) $ pip freeze
# should give you the packages you installed
This can help you not only with this example, but it can always keep your system Python installation clean and if you mess something up, you will only mess the environment you are having for specific project.

Cannot install Python secrets package

I have few dependencies in a project listed in the requirements.txt file,
requests==2.18.4
secrets==1.0.2
PyYAML==3.12
I wanted to installed them and called the command inside the virtualenv,
$ pip install -r bin/requirements.txt
I get the message provided below,
Collecting requests==2.18.4 (from -r bin/requirements.txt (line 1))
Using cached https://files.pythonhosted.org/packages/49/df/50aa1999ab9bde74656c2919d9c0c085fd2b3775fd3eca826012bef76d8c/requests-2.18.4-py2.py3-none-any.whl
Collecting secrets==1.0.2 (from -r bin/requirements.txt (line 2))
Could not find a version that satisfies the requirement secrets==1.0.2 (from -r bin/requirements.txt (line 2)) (from versions: )
No matching distribution found for secrets==1.0.2 (from -r bin/requirements.txt (line 2))
Inside the virtualenv, I can have the versions provided,
$ python -V
Python 3.7.2
$ pip -V
pip 19.0.3 from /Users/chaklader/PycharmProjects/Welance-Craft/env/lib/python3.7/site-packages/pip (python 3.7)
Whats the issue here?
Update
I had to delete the secrets and update the other dependencies:
requests==2.21.0
PyYAML==3.13
While there is a secrets package, it’s very old (2012), has only one release, a broken website, and no info. It doesn’t appear to install on Python 2.7 or 3.7.
You may instead be trying to use the secrets standard library that’s built-in to Python 3.6+. It’s not a package, so you don’t need to install it or add it to your requirements.txt, simply import secrets. If you need it for an earlier version, there does appear to be an unofficial backport.
When trying to install the package myself, I get the same error.
However, when searching this package on pypi.org, it seems that the last released version was in 2012 and the link there to the project's homepage leads to an almost completely empty webpage. I would thus assume that this package doesn't exist anymore.
Now there is a backport of the secrets module for Python 2.7, 3.4 and 3.5 by the name of python2-secrets. (the name is a bit confusing in my opinion)
Installation:
pip install --user python2-secrets
I got the same issue recently(2022) and solved this with
pip install python-secrets
see documentation in https://pypi.org/project/python-secrets/

Python pip install mysql-connector-python 2.0.1 fails

In developing a Django application, I used the following command to install MySQL (python3):
(Venv)$ pip3 install mysql-connector-python --allow-external mysql-connector-python
The installation was sucessful, and pip3 freeze > requirements.txt shows that mysql-connector-python==2.0.1 was installed.
However, in the production environment, pip3 install -r requirements.txt produced the following error message.
Downloading/unpacking mysql-connector-python==2.0.1 (from -r requirements.txt (line 6))
Could not find any downloads that satisfy the requirement mysql-connector-python==2.0.1 (from -r requirements.txt (line 6))
Is this a bug?
There is an outstanding bug with the way it is packaged on PIP.
here are the details: http://bugs.mysql.com/bug.php?id=76063
You can use following commands to install mysql-connector as mentioned on same link :
wget https://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.3.zip
unzip mysql-connector-python-2.0.3.zip
cd mysql-connector-python-2.0.3
python setup.py install
pip can not install mysql-python-connector due to an error on the part of its package maintainers. Here is the relevant issue filed against that package's bug tracker. Although technically it should be installable with
pip install --allow-external mysql-connector-python --allow-unverified mysql-connector-python mysql-connector-python
this does not work if the package maintainers fail to correctly register the external URLs to PyPI.
Note that PyMySQL appears to be a complete drop-in replacement, as a pure-Python MySQL driver that implements the Python DB API 2.0 specification. Additionally, PyMySQL appears to be actively maintained, uploaded to PyPI (as opposed to hosted on external URLs), and is under the more generous MIT license (as opposed to the GPLv2 license).
Try this if you do not want to install manually:
sudo pip3 install --extra-index-url https://pypi.python.org/pypi/mysql-connector-python/2.0.4 mysql-connector-python
Works for me on Debian Jessie.

Categories

Resources