After struggling with this for quite a few hours I am at my wit's end.
I want to include the Python modules from my project into the PYTHONPATH, so that the Python interpreter can resolve them and make them available for import
.
My project folder looks like this:
my_project/
module1/
__init__.py
module1.py
module2/
__init__.py
module2.py
I've exported PYTHONPATH in /etc/bash.bashrc
like this:
PYTHONPATH="${PYTHONPATH}:/home/john/my_project/"
After restarting my shell I can echo it:
$ echo $PYTHONPATH
:/home/john/my_project/
Then I fire up a Python command line and look at what sys.path
became:
$ source /home/john/my_env/bin/activate
(my_env)$ python3
>>> import os
>>> sys.path
['', '/home/john/my_env/lib/python35.zip', '/home/john/my_env/lib/python3.5', '/home/john/my_env/lib/python3.5/plat-x86_64-linux-gnu', '/home/john/my_env/lib/python3.5/lib-dynload', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/home/john/my_env/lib/python3.5/site-packages']
As you can clearly see, /home/john/my_project/
wasn't included and import module1
will fail.
The last thing I can think of is that Python can't see my PYTHONPATH variable, hence not adding it's content to sys.path
.
Do you guys find my mistake?
Thanks in advance.
As you can see from here:
Use export
in bash to set variables for the current shell and for all processes spawned from the current shell. So you should use:
export PYTHONPATH="${PYTHONPATH}:/home/john/my_project/"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With