Saturday, July 23, 2016

Managing Python Environment using Anaconda

Previously, we discussed that you could manage multiple versions of Python runtime environment on Linux systems using python-virtualenv. This post is a note on how we may manage Python runtime environment using Anaconda. Anaconda is a cross-platform tool, and runs on Windows, Mac OS X, and Linux.

Below are steps tested on a Windows 10 system.
  1. Download Anaconda package and install it.
  2. You can now see that Python is installed
    
    C:\Users\DemoUser>python --version
    Python 3.5.2 :: Anaconda 4.1.1 (64-bit)

  3. See this page for how to manage different version of Python environment. Below shows how we may bring Python up-to-date.
    
    C:\Users\DemoUser>conda update python
    Fetching package metadata .......
    # All requested packages already installed.
    # packages in environment at C:\Anaconda3:
    # python 3.5.2
    

Of course, we can do more with Anaconda, such as, manage Python packages. Below shows that we can install Gensim and all its dependencies in one single step.


C:\Users\DemoUser>conda install -y gensim
Fetching package metadata .......
Solving package specifications: ..........

Package plan for installation in environment C:\Anaconda3:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    bz2file-0.98               |           py35_0           6 KB
    conda-env-2.5.2            |           py35_0          67 KB
    conda-4.1.9                |           py35_0         247 KB
    smart_open-1.3.3           |           py35_0          28 KB
    gensim-0.12.4              |      np111py35_0         2.2 MB
    ------------------------------------------------------------
                                           Total:         2.6 MB

The following NEW packages will be INSTALLED:

    bz2file:    0.98-py35_0
    gensim:     0.12.4-np111py35_0
    smart_open: 1.3.3-py35_0

The following packages will be UPDATED:

    conda:      4.1.6-py35_0       --> 4.1.9-py35_0
    conda-env:  2.5.1-py35_0       --> 2.5.2-py35_0

Fetching packages ...
bz2file-0.98-p 100% |###############################| Time: 0:00:00  95.70 kB/s
conda-env-2.5. 100% |###############################| Time: 0:00:00 245.29 kB/s
conda-4.1.9-py 100% |###############################| Time: 0:00:01 155.70 kB/s
smart_open-1.3 100% |###############################| Time: 0:00:00 205.54 kB/s
gensim-0.12.4- 100% |###############################| Time: 0:00:15 150.04 kB/s
Extracting packages ...
[      COMPLETE      ]|##################################################| 100%
Unlinking packages ...
[      COMPLETE      ]|##################################################| 100%
Linking packages ...
[      COMPLETE      ]|##################################################| 100%
C:\Users\DemoUser>


Note that in the above we install packages for DemoUser. To install packages system-wide, we need to be elevated to system administrator.

Wednesday, July 20, 2016

Plagiarism Checking Tools

As the title suggests, here is a list of plagiarism checking tools, some of which offer free services,

Saturday, July 9, 2016

Running Multiple Versions of Python on a Single Linux System

While some Python applications are written in Python 3, some others are still being maintained and developed in Python 2. That is to say, there is a need to run multiple versions of Python on a single system. The following steps show that you can install multiple versions of Python on a single Linux system, and activate and deactivate the version you wish to use conveniently by leveraging on virtual python environments. Note that the following steps are tested on a Debian-based Linux system, such as Debian Linux and Ubuntu Linux

  1. Install the Python 2 and Python 3 if you have not done so.
    
    sudo apt-get install python python3
    

  2. Install python-virtualenv packages. This step is the key.
    
    sudo apt-get install python-virtualenv
    

  3. Show that you have both python 2 and 3 binaries. In the Linux system I am using for this post, the python binary by default points to Python 2's binary. Yours may differ.
    
    $ python --version
    Python 2.7.6
    
    $ python3 --version
    Python 3.4.3
    

  4. To develop or run some applications in python 3, we need to activate Python 3. Then, first create a directory as the working directory for the Python 3 application. For instance, we name the directory as proj_python_3.
    
    $ mkdir proj_python_3
    

  5. Now switch to the directory.
    
    cd proj_python_3
    
    $ which python3
    /usr/bin/python3
    

  6. Then activate Python 3, we first need to set up an environment in the working directory for Python 3.
    
    $ virtualenv -p /usr/bin/python3 .env
    Running virtualenv with interpreter /usr/bin/python3
    Using base prefix '/usr'
    New python executable in .env/bin/python3
    Also creating executable in .env/bin/python
    Installing setuptools, pip...done.
    

  7. Now we can activate Python 3 any time we wish after we switch to the working directory.
    
    $ pwd
    /home/user/proj_python_3
    
    $ . .env/bin/activate
    (.env)$
    

    Note that the prompt shows that you are under a virtual environment for Python 3. You can show that the activated Python version is Python 3.
    
    (.env)$ python --version
    Python 3.4.3
    

  8. To deactivate the virtual environment, run the following,
    
    
    (.env)$ deactivate
    $ python --version
    Python 2.7.6
    

At present, the working directory for the virtual python environment must be on a file system that supports symbolic links; otherwise step 6 will fail.