Recently I wanted to update my python packages and really wasn’t a way to easily update them until I ran into Stack Overflow question on how to do it. Which it worked neatly.
Here are the steps on how to do it in your python environment
pip list --outdated --format=freeze #list outdated packages
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
If you have a specific python version, you can invoke it this way
pip2.7 list --outdated --format=freeze #list outdated packages
pip2.7 freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 sudo -H pip2.7 install -U
After years of monitoring my data usage and going over, I decided to make a dashboard (yes, like your car dashboard) for my ISP data usage.
I decided to publish this piece of code with the hopes that would help other people setting something up, where they could be notified via text message/SMS on their current data usage and predict what their usage will be by the end of the [billing] cycle.
Here is the repo -> https://github.com/blacknred0/mdup and the name of the project is “Mediacom Data Usage Prediction (mdup) via SMS”.
Recently I started to so some dev on python and noticed that on the server that I was going to do the work I don’t have sudo access. In the past, this has not been an issue, but in this case getting sudo access is almost impossible and not doable. So my only option is being able to run pip (to install python packages) as an user.
After painfully researching on how to successfully do this, I was able to make it work. I hope that this helps others in the future. Good luck!
- Make sure that you have python installed
- Download latest version of virtual environment (virtualenv)
- Unpack source tarball
tar -xzf virtualenv-15.1.0.tar.gz
- Create your package environment
python virtualenv-15.1.0/virtualenv.py py-packages
- Delete the virtual environment folder
rm -rfv virtualenv-15.1.0
- Install virtualenv into your environment. You can use the package that you downloaded or using pip.
py-packages/bin/pip install virtualenv-15.1.0.tar.gz
py-packages/bin/pip install virtualenv
- If you want to clone environments you can do the following
So, if you have RHEL 6, you might be stuck with Python 2.6. But, not really. Even though you might not be able to install a new version of python using yum, you can still download a new version of python and install it in your environment. Now, you can install it and replace the current version or you can install another version and have two python in your system.
- Install GCC by typing
sudo yum install gcc
- Go to
Now, let’s download a release from python.org. In this example we will be using Python 3.5.0.
sudo wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tar.xz sudo tar xf Python-3.5.0.tar.xz sudo cd Python-3.5.0
- Let’s compile
- Let’s build the package
- Now, to install it you have two options. You can either overwrite the python executable or you can install as concurrent instance.
- If you want to overwrite the OS python executable
sudo make install
- If you want to install concurrent (not overwritting the OS executable)
sudo make altinstall
- Now let’s link it so others could use it
sudo ln -s /usr/local/bin/python3.5 /usr/bin/python3.5
- Now test it by invoking the following command
You should have the following result
- If you get that result let’s continue, otherwise look back and see what step you missed.
- Now that you have python 3.5 install along with 2.7, you might want to install pip to handle package installations.
- In order to do that, let’s first download pip.
- Now, let’s install it
sudo python3.5 get-pip.py
If setuptools is not installed, get-pip.py will automatically install setuptools.
- To check pip if installed successfully
You should have the following result
"pip 7.1.2 from /usr/local/lib/python3.5/site-packages (python 3.5)"
- If you want others to use pip with sudo command, you probably want to do this
sudo ln -s /usr/local/bin/pip3.5 /usr/bin/pip3.5
- And there you go! Now you have two python versions and two pip versions running concurrently on your OS.