Installing Biopython: ImportError: No module named Bio

Mike picture Mike · Jul 29, 2015 · Viewed 8.4k times · Source

trying to install Biopython on Fedora 21, Python 2.7. I've done the following

[mike@localhost Downloads](17:32)$ sudo pip2.7 install biopython
You are using pip version 6.1.1, however version 7.1.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting biopython
/usr/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Downloading biopython-1.65.tar.gz (12.6MB)
    100% |████████████████████████████████| 12.6MB 33kB/s 
Installing collected packages: biopython
  Running setup.py install for biopython
Successfully installed biopython-1.65

And then

[mike@localhost Downloads](17:32)$ ipython
Python 2.7.9 |Anaconda 2.2.0 (64-bit)| (default, Mar  9 2015, 16:20:48) 

In [1]: import Bio
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-a7440e1156be> in <module>()
----> 1 import Bio

ImportError: No module named Bio

What am I doing wrong?

EDIT

I tried installing biopython using

sudo easy_install -f http://biopython.org/DIST/ biopython

and it installed it into /usr/lib/python2.7/site-packages/biopython-1.65-py2.7-linux-x86_64.egg/. Didn't work.

Then I tried installing it using the same command, without the sudo:

easy_install -f http://biopython.org/DIST/ biopython

which installed it into /home/mike/anaconda/lib/python2.7/site-packages/biopython-1.65-py2.7-linux-x86_64.egg

And that worked! Both for ipython and python. But why did it work...?

Answer

shouldsee picture shouldsee · Oct 25, 2017

It's not good practice to sudo pip, since it may install things under root permission, which is usually not granted to ordinary program.

The problem probably lies in library path. The most informative tools will be

import sys
print (sys.path)

and

which python
pip --version

And use pip install biopython --user to replace sudo pip