pip and virtualenv

Python comes with a lot of great features built in but heaps more can be installed from the Python Package Index. Using the command pip this is really simple. To install for example the requests library you write the following from a terminal / command prompt:

pip install requests

To list all packages installed write:

pip freeze

Example output:

requests==2.11.1

Problem

When working on multiple Python projects on the same computer you will sooner or later run inte package dependency problems. One project might require requests version 1 while another requires requests version 2.

Solution

A solution to this problem is using virtualenv to create virtual environments. When a virtual environment is created it looks like a brand new Python installation. Calling pip freeze will show that no packages are installed. If a package is installed it is available as long as the environment is active.

To make virtualenv easier to use there is a project called virtualenvwrapper which adds a few commands to the terminal. If using Windows virtualenvwrapper-win should be used but the commands are the same.

virtualenvwrapper

To create a new virtual environment (replace test with the name you want):

mkvirtualenv test

The environment will be created, your Python installation will be available and the new environment will be activated.

It will look like this:

Computer:~ marcus$ mkvirtualenv test
New python executable in test/bin/python3.4
Also creating executable in test/bin/python
Installing setuptools, pip, wheel…done.
[…]
(test)Computer:~ marcus$

Notice how the prompt has changed from  now starting with (test). This is to inform which environment is active.

To stop using the environment:

deactivate

The prompt changes back to Computer:~.

To use the newly created environment again:

workon test

If you don’t need your environment any more you can easily delete it:

rmvirtualenv test

Notice that you can not remove an environment that is currently active, you will have to deactivate it first.

Bonus

All at once

Install multiple dependencies at once using a requirements file. At its simplest level a requirements file is just a text file listing a dependency name per line but usually also contains the version like the output of pip freeze.

pip install -r requirements.txt

Multiple Python versions

Even though Python 3 is the recommended version to use, there are cases when the much older Python 2 is required. If more than one Python version is installed the requested one can be chosen when creating the virtual environment.

mkvirtualenv test --python=/usr/local/bin/python2

Links

  1. Python Package Index
  2. pip
  3. VirtualEnv
  4. VirtualEnvWrapper
  5. VirtualEnvWrapper Win

Lidingöloppet 2015

Igår sprang jag för första gången Lidingöloppet 30 km. Det var riktigt jobbigt! P.g.a. knäproblem har jag inte kunnat träna särskilt mycket innan och det längsta jag sprungit de senaste månaderna var 17 km.

Men loppet gick trots allt bra!

Jag kom för sent till starten och fick starta med gruppen efter, sprang snabbt i början och hängde med de 100 första. Det gjorde att det var glest och lättsprunget. Men efter 9 km så var jag ikapp den stora mängden från min grupp och sen var det mycket folk på banan resten av tiden. Kollar man på snittiderna så ser man att jag gick ut allt för hårt och orkade inte hålla tempot. När det var 8 km kvar så gjorde det ont i knäna i nedförsbackarna. Men jag lyckades hålla mig springandes hela vägen och fick till och med en spurt på upploppet =D

Startnummer: 40650
Sluttid: 2:40:65 (2:50:65 – 10 minuter för sen start)
Slutplacering: 3851 (6034) av 21984

Runkeeper

Windows 7 till 10 med WiFi dongel

Jag installerade precis om en dator med Windows 7, installerade 300 uppdateringar och uppgraderade sedan till Windows 10. Det tog ett tag och när installationen borde varit klar blev skärmen först blå, sen svart, men jag kunde se muspekaren. Efter en tvingad omstart så dök skärmen ”Välkommen tillbaka” upp som bad mig logga in.

Detta var dock inte möjligt; oavsett vad jag klickade på så låste sig datorn och startade om efter någon minut.

Problemet visade sig vara WiFi dongeln, närmare bestämt en D-Link DWA-140, jag hade inkopplad på USB. Efter att stängt av datorn, kopplat ur den och sedan försökt på nytt så kom jag förbi inloggningsrutan.

Men, efter att kopplat in dongeln så fungerar inte WiFi. Inte ens efter att installerat senaste drivrutinen från D-Link.

Löste det genom att ta avinstallera drivrutinerna och sedan installera Mediatechs drivrutiner.

Förändring och rutiner

Sen två dagar tillbaka är jag på Gili Meno i Indonesien. Mycket av Indonesien är sig likt, men mycket på Meno har ändrats, bland annat Adeng-Adeng. Verksamheten har vuxit till att rulla på själv dag till dag, trädgården har blivit grönare och liknar mer en oas och de nya rummen är större och bekvämare.

Den här gången jag är här så är jag inte ledig utan jobbar på distans. Att göra det bra kräver både att jag vänjer mig vid klimatet och tidsskillnaden samt att jag skapar bra rutiner. Jag vill inte heller bara jobba utan har sett fram emot att få fridyka.

Planen just nu är att gå upp,  jobba 4 timmar, dyka, ta siesta/göra annat, jobba 4 timmar till och sen vara ledig. Största problem nu blir att gå upp rätt tid.