I'm executing with pycharm the following:
print(os.environ["PATH"]) # returns '/usr/bin:/bin:/usr/sbin:/sbin'
But when I execute echo $PATH in a shell this is returned:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/local/sbin
I tried to edit it in Preferences > Console > Python Console > Environment Variables, setting
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/local/sbin
but this is not working
any idea?
@fj123x, I'm going to guess from your post that you are
If true, the problem is that the JetBrains jediterm terminal emulator is not executing all shell startup files in the correct order.
If you are using zsh, you can fix that root problem by editing the terminal plugin's
.zshrc
. Assuming PyCharn is in your Applications folder, open/Applications/PyCharm.app/Contents/plugins/terminal/.zshrc
and replace the contents with:If you are interested in all the gory details, or you want to see how I solved this problem so you can develop a solution for another shell, see this answer: https://stackoverflow.com/a/51006003/1089228
I work on the command line in bash and my environment, including
$PATH
, is set in.bash_profile
. The default terminal in PyCharm istcsh
. I changed it to bash by going File ... Default Settings ... Tools ... Terminal ... Shell Path and then restaring. The embedded terminal worked as expected.On Ubuntu, using zsh, I stumbled upon the same problem.
The hack I use in order to have the same environment variables in PyCharm and my shell is to launch PyCharm from my terminal instead of using the icon. It looks like this way that the PyCharm shell inherits from the main shell it's been launched from.
I hope it can solve other people's problem as I wasn't able to replicate @Steve Tarver's solution on Linux (.../terminal/.zshrc was read only on /snap/, even when using sudo).