26

When I try to run my program from the PyCharm IDE everything works fine but if I type in Fedora:

python myScript.py

in a shell prompt I get an import error from 1 of the module.

ImportError : No modue named myDependency

What does PyCharm do that allows the interpreter to find my dependencies when launched from the IDE? How can I get my script to find its dependencies so it can be launched with a singe command?

martineau
  • 119,623
  • 25
  • 170
  • 301
Asics
  • 858
  • 1
  • 11
  • 20

4 Answers4

35

There are a few possible things that can be causing this:

  1. The same python interpreter? Check with import sys; print(sys.executable)
  2. Is it the same working directory? Check with import os; print(os.getcwd())
  3. Discrepancies in sys.path, which is the list python searches sequentially for import locations, can possibly caused by environment variables. Check with import sys; print(sys.path).
wim
  • 338,267
  • 99
  • 616
  • 750
14

Adding this worked for me:

from os import sys, path
sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))
Ohad Lahav
  • 290
  • 3
  • 7
6

As a first step, in PyCharm go to project settings / python interpreter, and note the path. Then compare that to the result of which python -- do they line up? If not, you need to make them do so.

If that's ok, check what PyCharm defines as your project root in project settings / project structure. Is that the directory where your script is located? If not, you should run the script from that directory or append the directory to the $PYTHONPATH variable.

Almost definitely, it's one of those two things.

jwilner
  • 6,348
  • 6
  • 35
  • 47
0

You might have set some project dependency in Pycharm for module myDependency. You can access the same in Fedora by importing the module explicitly or by creating the egg of that module and installing it. This will then go to python site-packages from where you can refer this dependency.

attaboyabhipro
  • 1,450
  • 1
  • 17
  • 33