I'm trying to run a scrapy project on a ubuntu server. For which I need to add the project path to python path.
I created a .bash_profile file in the /home directory with the following contents:
PYTHONPATH=$PYTHONPATH:/home/john/Desktop/myscraper/
EXPORT $PYTHONPATHBut I'm getting error running my python file stating it didn't find the module.
ImportError: No module named myscraper.itemsI tried using the following paths, but nothing works.
/home/john/Desktop/myscraper//home/john/Desktop/myscraperhome/john/Desktop/myscraper/home/john/Desktop/myscraper
2 Answers
In addition to NeoTheThird's answer:
Ubuntu does not use ~/.bash_profile by default. You should use ~/.profile instead.
The path you should use is /home/john/Desktop/myscraper, though /home/john/Desktop/myscraper/ would also work. Paths that don't start with slashes are relative, not absolute, so will not work unless the working directory is /. More details here on Wikipedia.
You can put the definition and export statements together, and if PYTHONPATH is not already defined, you can leave off the $PYTHONPATH: at the start.
export PYTHONPATH=/home/john/Desktop/myscraper 1 Config files belong in your personal home directory (/home/$USER, $HOME or simply ~), not in the /home directory. In your case that will be /home/john.
Please also make sure to use the correct casing, it's export in all lowercase.
Since export is not accessing but referencing the variable, you do not use the $ sign: export PYTHONPATH
Are you sure you want to have this in your .bash_profile and not your .bashrc? You can read up on the difference here.
In any case you will have to run source ~./bash_profile (or source ~./bashrc if you go with that) for your changes to take effect.