Issue
I am trying to run a google ortools example in PyCharm and got the following errors:
/Users/edamame/project/ortools/simple_program.py
Traceback (most recent call last):
File "/Users/edamame/project/ortools/simple_program.py", line 3, in <module>
from ortools.linear_solver import pywraplp
ModuleNotFoundError: No module named 'ortools.linear_solver'
Process finished with exit code 1
However, if I run the same code outside the PyCharm (under the corresponding project venv), it works fine:
(venv) edamame$ pwd
/Users/edamame/project/ortools/
(venv) edamame$ python simple_program.py
Solution:
Objective value = 4.0
x = 1.0
y = 1.0
I then tried to print below in both cases:
import sys
print('\n'.join(sys.path))
The outputs:
In PyCharm:
/Users/edamame/project/venv/bin/python
/Users/edamame/project/ortools/so_example.py
/Users/edamame/project/ortools
/Users/edamame/project
/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload
/Users/edamame/project/venv/lib/python3.6/site-packages
/Users/edamame/project/venv/lib/python3.6/site-packages/setuptools-39.1.0-py3.6.egg
/Users/edamame/project/venv/lib/python3.6/site-packages/pip-10.0.1-py3.6.egg
Outside PyCharm:
(venv) edamame$ python so_example.py
/Users/edamame/project/ortools
/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload
/Users/edamame/project/venv/lib/python3.6/site-packages
/Users/edamame/project/venv/lib/python3.6/site-packages/setuptools-39.1.0-py3.6.egg
/Users/edamame/project/venv/lib/python3.6/site-packages/pip-10.0.1-py3.6.egg
They seem to be the same though ... not sure what could be the problem ...
How do I make the same code working in PyCharm?
Solution
You have a namespace collision between custom ortools
package and the installed one. PyCharm adds the project root (/Users/edamame/project
) to PYTHONPATH
by default and it causes the problem.
Either rename your custom ortools
package or disable Add content roots to PYTHONPATH option in the dedicated Run Configuration in PYCharm.
Answered By - Pavel Karateev
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.