Ubuntu Python "No module named paramiko"

56,568

Solution 1

Short version: You're mixing Ubuntu's packaged version of Python (/usr/bin/python) and a locally built and installed version (/usr/local/bin/python).

Long version:

  • You used apt-get install python-paramiko to install Ubuntu's official Paramiko package to /usr/lib/python2.7/dist-packages.
  • You used (I assume) Ubuntu's version of pip, which installs to /usr/local/lib/python2.7/dist-packages. (See here.)
  • You used a locally built version of Python, and because it's locally built, it uses /usr/local/lib/python2.7 instead of /usr/lib/python2.7, and because it doesn't have Debian/Ubuntu customizations, it doesn't check use dist-packages.

Solution: You should be able to add /usr/local/lib/python2.7/dist-packages to your /usr/local/bin/python's sys.path, but since you're using Ubuntu, it's easiest to let Ubuntu do the work for you:

  • Use /usr/bin/python instead of a local version.
  • Use Ubuntu's packages wherever possible (i.e., use apt-get instead of pip).
  • Use virtualenv for the rest (to keep a clean separation between Ubuntu-packaged and personally installed modules).

I'd go so far as to uninstall the local version of Python and delete /usr/local/lib/python2.7, to ensure that no further mismatches occur. If you don't want to be that drastic, then you can edit your $PATH to put /usr/bin before /usr/local/bin to run the system version of Python by default.

Solution 2

There are two others methodes for add modules in python :

The first :

  1. Download the package.
  2. Create directory and paste the package in it.
  3. Tap in the terminal :
  4. export PYTHONPATH=$PYTHONPATH:path_of_package

The second :

  1. open python interpreter:
  2. import sys
  3. sys.path.insert(0, "path_of_package")
Share:
56,568
Delliardo
Author by

Delliardo

nope.

Updated on August 08, 2020

Comments

  • Delliardo
    Delliardo almost 4 years

    So I'm trying to use Paramiko on Ubuntu with Python 2.7, but import paramiko causes this error:

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named paramiko
    

    The other questions on this site don't help me since I'm new to Ubuntu.

    Here are some important commands that I ran to check stuff:

    sudo pip install paramiko
    pip install paramiko
    sudo apt-get install python-paramiko
    

    Paramiko did "install". These are the only commands I used to "install" paramiko. I'm new to Ubuntu, so if I need to run more commands, lay them on me.

    which python
    /usr/local/bin/python
    
    python -c "from pprint import pprint; import sys; pprint(sys.path);"
    ['',
     '/usr/local/lib/python27.zip',
     '/usr/local/lib/python2.7',
     '/usr/local/lib/python2.7/plat-linux2',
     '/usr/local/lib/python2.7/lib-tk',
     '/usr/local/lib/python2.7/lib-old',
     '/usr/local/lib/python2.7/lib-dynload',
     '/usr/local/lib/python2.7/site-packages']
    

    In the python interpreter, I ran help("modules") and Paramiko is not in the list.

    two paramiko folders are located in usr/local/lib/python2.7/dist-packages.