Saturday 30 December 2017

python - cannot import a module after os.chdir()





I have a python file with the class A
defined in it in a different directory than the one I am working in. I want to import a
module from that class in my script. I wrote something like this in
jupyter:




import
os
parent_dir = 'path/to/class'
os.chdir(parent_dir)
from
A import a


It works
perfectly fine and I get to execute the program. However when I run the script in the
same directory from the terminal, I get this
error:



ModuleNotFoundError: No
module named
'a'



I put a
os.getcwd() before the error to make sure it is in the same
directory, and when I go to that directory from the terminal and import the module
directly there are no errors. I wonder why I get this error when running the script.


style="font-weight: bold;">

Answer




Don't use os.chdir,
because it changes a global state, that can lead to unexpected behaviour somewhere
else.



Expand
sys.path:



import
sys
sys.path.append('/absolute/path/to/module')



No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...