ImportError: No module named serial

70,199

Solution 1

On my ubuntu 14.4 with python 2.7 as default, I installed pyserial for python3 (which my IDE is using actually) with the help of following command:

sudo apt-get install python3-serial

Solution 2

For me, the problem was solved by running the script importing serial in a user (not administrative) context. Windows, not Mac, so YMMV.

Solution 3

First use the two commands (which pip & which python) to get the exact path of the python and pip commands. After this only you will be able to determine the exact issue.

Share:
70,199
user3587244
Author by

user3587244

Updated on April 11, 2020

Comments

  • user3587244
    user3587244 about 4 years

    I have a script written in Python 3 with 3.3.5 installed, and I am getting this error from the terminal whenever I try to run it. I am using a Mac, OSX 10.7.5

    I have already installed pyserial (using pip) for python 3. In order to do this, I first installed pip using:

    $ curl -O http://python-distribute.org/distribute_setup.py
    $ sudo python3 distribute_setup.py
    $ curl -O https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py
    $ sudo python3 get-pip.py
    

    I then installed pyserial with:

    $sudo pip3 install pyserial
    

    I run the script with Python Launcher and I get the error:

    ImportError: No module named serial
    

    The error is at the line which says

    import serial
    

    I located pyserial in /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages. I am really stumped and have no clue why I am getting this error.

    I tried the following in Terminal:

    $ python3
    >>> import serial
    >>> serial
    <module 'serial' from '/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/serial/__init__.py'>
    

    To me it looks like there isn't an issue with the directory. Is that a fair assumption, since Python instantly looks through that directory when I try it with the command line, or is it different when I'm running a script?

    I'm very new to all of this so any sort of help and patience would be hugely appreciated.

    Thanks.

    EDIT: For anyone else looking at this having a similar problem, I didn't really fix it, but I worked around it by just running my program with eclipse using the PyDev plugin. If that's an option for you, worked like a charm for me.

    • Trein
      Trein about 10 years
      Can you execute pip3 list and paste the result here? Also, is PYTHONPATH set?
    • user3587244
      user3587244 about 10 years
      @Trein pip3 list gives me the following: "distribute (0.6.49) pip (1.5.4) pyserial (2.7) setuptools (3.4.4) " I am not quite sure what I am doing, but I tried setting PYTHONPATH with a tutorial I found. Here's what I did: export PYTHONPATH=$PYTHONPATH:/Library/Frameworks/Python.framework/‌​Versions/3.3/lib/pyt‌​hon3.3/site-packages It didn't fix it though. I get the sense that this is not too complicated a problem, but it's giving me a huge headache. Thanks!
    • Trein
      Trein about 10 years
      Everything seems to be correct. My last guess is that Python Launcher is using the incorrect interpreter (maybe it is using Python 2.7). Go to preferences and check it out.
  • user3587244
    user3587244 about 10 years
    /Library/Frameworks/Python.framework/Versions/3.3/bin/pip which python gives me python 2.7, but I am executing it through python launcher 3. Could that be the problem?
  • Shrey
    Shrey about 10 years
    I am not sure but this could be issue. Try using relative path for python command so that it picks up your python 3.x. Like instead of using python you should use /xyzpath_for_python3.x/python
  • Jostikas
    Jostikas almost 3 years
    In hindsight, that probably had something to do with the proliferation of Python installs in the computer, with the user console resolving to a different installation compared to the administrative one.