Justin Noor3,692 Points
Using 'chmod +x diary.py' outside of Treehouse workspaces.
I am on Linux Ubuntu 16.04 and I am not using Treehouse workspaces for my work. I save everything into my own folders using sublime text. I created a virtualenv called 'python35_env' for my Treehouse projects (actually a conda env).
When I use the 'chmod +x diary.py' shortcut per the video, it works, but I still have to 'cd' all the way into the folder where my diary.py file is.
How do you use this shortcut with virtual environments? Assuming that the virtualenv is activated, is 'chmod +x diary.py' supposed to find diary.py regardless of where you are in the directory tree?
Could it be my shebang line?
Chris FreemanTreehouse Moderator 56,833 Points
chmod is a linux shell command that operates on a file or directory. The command
chmod +x diary.py will look only in the current working directory where the command was run. This is a Linux feature and is unrelated to virtualenvs. Keep in mind that virtualenvs do not change the directory structure, it only change the search path for looking for executable files. This is mainly for programs installed using
pip. It does not add working directories to the execution search path.
It is not uncommon to
cd to the directory containing the python file before trying to run it.
If you don't want to
cd to the directory containing the file
diary.py and if it is beneath the current directory, you can "find" it and then run it using this hack:
`find . -name diary.py`
Note the backticks are required. They tell the Linux shell to execute the command within the backticks, then use the result as an argument for the shell.
find returns a list of files matching the search parameters. In this case, files that have the name "dairy.py".
If you wish to add the
diary.py directory to the path for the current shell window (for bash shell):
cdto the diary.py directory
diary.py should execute from the prompt.
Post back if you still have issues or questions.