IntelliJ Python plugin & Run classpath

20,736

Solution 1

Make sure you have __init__.py in mymodule directory:

The __init__.py files are required to make Python treat the directories as containing packages; this is done to prevent directories with a common name, such as string, from unintentionally hiding valid modules that occur later on the module search path. In the simplest case, __init__.py can just be an empty file, but it can also execute initialization code for the package or set the __all__ variable, described later. ©

UPDATE: In IntelliJ IDEA additional directories should be added as Module Dependencies or configured as Libraries (to be added to the Dependencies) instead of the Classpath tab of the Python SDK:

Dependencies

I've verified that this folder (D:\dev\lib) is added to the PYTHONPATH and import works.

Solution 2

In IntelliJ 14 it's a little different, you are modules/eggs like so:

  • Go to File -> Project Structure
  • Now select Modules and then "Dependencies" tab
  • Click the "+" icon and select "Library"
  • Click "New Library" and select Java (I know it's weird...)
  • Now choose multiple modules / egg and "OK".
  • Select "Classes" from categories.
  • Give your new library a name, "My Python not Java Library"
  • And finally click "Add Selected"

Solution 3

From Version of 2017.1 adding it has been changed again. There is no project structure in the file menu. Writing current procedure down:

  1. Go To Preference/Settings. File -> Settings (IDE Name -> Preferences for macOS)

  2. Select Build, Execution, Deployment

enter image description here

  1. Select Python Interpreter

  2. Select on drop-down menu of project interpreter and select the path of path of version of Python required for the project.

enter image description here

  1. Click on Apply and wait for few minutes to let IntelliJ index the python packages.

All error should be gone now and You should be able to see Python used in the project in the list of external libraries.

enter image description here

Happy Coding.

Share:
20,736
mdm
Author by

mdm

Updated on August 18, 2020

Comments

  • mdm
    mdm over 3 years

    I have a project located at /home/myself/workspace/Project1, for which I created an SDK from a Python 2.7.3 Virtualenv I have setup.
    This project uses some external code that I have in an accessible directory, e.g. /home/myself/LIBRARY; this directory contains several directories with code, docs etc....
    For example, there is a module "important_util" located at /home/myself/LIBRARY/mymodule/important_util.py.

    Now, I added the whole dir /home/myself/LIBRARY in the SDK Classpath, and in the Editor window it appears just fine. The imports and calls are recognized and I can also navigate through the code in LIBRARY directories.

    The problem is that, when I try to run my program, it fails at the first import using LIBRARY!!!

    Traceback (most recent call last):
       File "/home/myself/workspace/Project1/my_program.py", line 10, in <module>
          from mymodule import important_util as ut 
          ImportError: No module named mymodule
    

    I also tried to add the same directories to the section "Global Libraries" in the Sources section...but no luck.

    I can't seem to find a way to add this code to the Run classpath, how would I be able to do this?