Aditya Mehrotra
Aditya Mehrotra

Reputation: 333

Python module import statement runs in PyCharm but not in VSCode

Here's my file structure

test/
  -dir1
    -thing.py
  -dir2
    -__init__.py
    -thing2.py

I am using python 3.7 and windows 10.

In thing.py, I'm trying to import a function called foo from thing2.py and have it execute when I run thing.py. My code works perfectly in PyCharm when I press run. However, when I run thing.py from the terminal directly or through code runner in VSCode, I get the following error:

from dir2.thing2 import foo

ERROR: ModuleNotFoundError: No module named 'dir2

Is the issue something to do with my PYTHONPATH or something else?

Upvotes: 3

Views: 2212

Answers (1)

Jill Cheng
Jill Cheng

Reputation: 10374

Based on the information you provided, I reproduced the problem you described. And you could use the following methods to solve it:

  1. Please add the following code at the beginning of the "thing.py" file, which adds the path of the currently opened file to the system path so that VSCode can find "foo" according to "from dir2.thing2 import foo":
import os, sys 
sys.path.append('./')

enter image description here

  1. If you don't want to add code, you could add the following setting in "launch.json", which adds the path of the project when debugging the code:
 "env": {
                    "PYTHONPATH": "${workspaceFolder}"
                }

enter image description here

Upvotes: 3

Related Questions