Difference between revisions of "Complete Roguelike Tutorial, using python3+libtcod, setup Mac"
Hari Seldon (talk | contribs) |
|||
(53 intermediate revisions by one other user not shown) | |||
Line 17: | Line 17: | ||
* [https://www.sublimetext.com/3 Sublime Text 3 (Editor)] | * [https://www.sublimetext.com/3 Sublime Text 3 (Editor)] | ||
* [https://macromates.com/ Text Mate (Editor)] | * [https://macromates.com/ Text Mate (Editor)] | ||
* [https://code.visualstudio.com/ VS Code (Editor)] | |||
* [http://blog.atom.io/2014/12/10/a-windows-installer-and-updater.html Atom (Editor)] | * [http://blog.atom.io/2014/12/10/a-windows-installer-and-updater.html Atom (Editor)] | ||
== Setting up Bash == | == Setting up Bash == | ||
Line 40: | Line 39: | ||
export PS1="$(virtualenv_prompt)${PS1}" | export PS1="$(virtualenv_prompt)${PS1}" | ||
export LIBTCOD_DLL_PATH=/usr/local/lib;/usr/lib;$HOME/.local/lib;$HOME/lib | export LIBTCOD_DLL_PATH="/usr/local/lib;/usr/lib;$HOME/.local/lib;$HOME/lib" | ||
</syntaxhighlight></div> | </syntaxhighlight></div> | ||
== Opening a Terminal == | == Opening a Terminal == | ||
Line 51: | Line 49: | ||
[https://docs.brew.sh/Installation.html Homebrew] is a package manager for Mac. Within a terminal, type the following to install homebrew: | [https://docs.brew.sh/Installation.html Homebrew] is a package manager for Mac. Within a terminal, type the following to install homebrew: | ||
<div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"</syntaxhighlight></div> | <div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"</syntaxhighlight></div> | ||
== Setting up Python == | == Setting up Python == | ||
To install the latest python version, simply run within a terminal: | |||
<div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">brew install python | <div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">brew install python</syntaxhighlight></div> | ||
To validate that we've installed python correctly, within a terminal, run: | To validate that we've installed python correctly, within a terminal, run: | ||
<div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">python --version</syntaxhighlight></div> | <div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">python --version</syntaxhighlight></div> | ||
The version should be at least "Python | The version should be at least "Python 3.7.0" (See: [https://www.python.org/dev/peps/pep-0569/ Release Schedule]). | ||
=== Troubleshooting === | |||
==== Environmental Variable: Path ==== | |||
Brew installs python into /usr/local/opt/python. You may need to add the following line to your $HOME/.bash_profile file and then restart your terminal. Do not add this line to your .bashrc file as this will invariably cause issues with subprocesses. | |||
<div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">export PATH=/usr/local/opt/python/libexec/bin:$PATH</syntaxhighlight></div> | |||
=== Pip === | |||
Python 3 comes bundled with a python package manager called `pip` which is used to install all project related python dependencies. To make sure we have `pip` installed run in a terminal: | |||
Python 3 comes bundled with a python package manager called `pip` | |||
<div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">python -m ensurepip</syntaxhighlight></div> | <div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">python -m ensurepip</syntaxhighlight></div> | ||
== Setting up your Project == | == Setting up your Project == | ||
=== Creating a virtual environment === | === Creating a virtual environment === | ||
Most python developers will use a virtual environment to isolate python and any project related dependencies from being installed into the system. This practice is a safety measure to prevent a developer's computer from becoming unstable and is highly recommended. | |||
==== Installing vsh ==== | |||
Vsh is a virtual environment generation tool. This will help you manage and build virtual environments. Most python developers will use a virtual environment to isolate their projects from their system. Additionally, vsh runs the python virtualenv in a sub-process shell To install: | |||
<div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">python3 -m pip install vsh</syntaxhighlight></div> | |||
==== Creating a virtual environment using vsh ==== | |||
To create a new virtual environment with python 3 for our project, just use the following: | To create a new virtual environment with python 3 for our project, just use the following: | ||
<div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash"> | <div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">vsh rl</syntaxhighlight></div> | ||
You should now be in your virtual environment | You should now be in your virtual environment | ||
<div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">(venv: | <div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">(venv:rl|3.7.0) bash-3.2$</syntaxhighlight></div> | ||
To make sure, test your python version. You should see something like version "3.7.0". Note that the version number and virtual env name is also in the command-line prompt | |||
<div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">(venv:rl|3.7.0) bash-3.2$ python --version</syntaxhighlight></div> | |||
=== Installing libtcod into our project === | === Installing libtcod into our project === | ||
Use pip | |||
<div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">(venv: | <div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">(venv:rl|3.7.0) $ pip install tcod</syntaxhighlight></div> | ||
Validate that we have libtcod installed. | Validate that we have libtcod installed. | ||
<div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">(venv: | <div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">(venv:rl|3.7.0) $ python -c "import tcod"</syntaxhighlight></div> | ||
=== Folder structure === | === Folder structure === | ||
Our first roguelike will be run entirely from a single file, ''firstrl.py''. However, to support some future needs regarding packaging and to make development easier, we need to add our dependencies into the project folder. | Our first roguelike will be run entirely from a single file, ''firstrl.py''. However, to support some future needs regarding packaging and to make development easier, we need to add our dependencies into the project folder. | ||
Line 186: | Line 108: | ||
touch $HOME/repos/mine/roguelike/firstrl.py | touch $HOME/repos/mine/roguelike/firstrl.py | ||
</syntaxhighlight></div> | </syntaxhighlight></div> | ||
== Finishing touches == | == Finishing touches == | ||
Line 195: | Line 115: | ||
Now you're ready to [[Complete Roguelike Tutorial, using python3+libtcod, part 1|start writing code]]. | Now you're ready to [[Complete Roguelike Tutorial, using python3+libtcod, part 1|start writing code]]. | ||
[[Category:Developing]] |
Latest revision as of 07:58, 4 December 2018
This is part of a series of tutorials; the main page can be found here. |
Setup Mac
Installing an Editor
Editors are often a personal choice. Their primary function is to allow the creation and editing of code. Additional functionality may be included such as code intelligence, code completion, static analysis, testing, debugging, etc. usually through plugins. Some editors are also IDEs or integrated development environments. They can help manage the lifetime of a project. For this tutorial, you only need an editor and none of the extra functionality, but an IDE may be very helpful when learning programming (or Python) for the first time.
The following editors are all excellent for python development. You only need one.
Note that these are listed in order of decreasing preference for development with python as a beginner. (i.e. pick one of the top ones for the best out of the box python experience)
Setting up Bash
Open finder (cmd + space) and go to your home folder and then press CMD + SHIFT + . (command + shift + period). Look for a ".bashrc" file within finder. Open it up in your editor or create a new file. Make sure the following lines show up at the bottom of the file:
# Setup prompt colors
reset_color="\[\e[m\]"
declare -A fg
magenta="\[\e[35m\]"
yellow="\[\e[33m\]"
green="\[\e[32m\]"
function virtualenv_prompt() {
if [ -n "$VIRTUAL_ENV" ]; then
pyver=$(python -V 2>&1 | cut -f2 -d' ')
echo "(${magenta}venv${reset_color}:${yellow}${VIRTUAL_ENV##*/}$reset_color|${green}${pyver}${reset_color}) "
fi
}
export PS1="$(virtualenv_prompt)${PS1}"
export LIBTCOD_DLL_PATH="/usr/local/lib;/usr/lib;$HOME/.local/lib;$HOME/lib"
Opening a Terminal
While Mac comes with a Terminal built-in, Iterm2 is the recommend install for a terminal. Once installed, simply press `Cmd + Space Bar` and type in iterm or terminal (for the default mac terminal). Whether you've installed iterm or are using the default terminal, we will use the word "terminal" below to refer to your preferred program (iterm or terminal).
Setting up Homebrew
Homebrew is a package manager for Mac. Within a terminal, type the following to install homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Setting up Python
To install the latest python version, simply run within a terminal:
brew install python
To validate that we've installed python correctly, within a terminal, run:
python --version
The version should be at least "Python 3.7.0" (See: Release Schedule).
Troubleshooting
Environmental Variable: Path
Brew installs python into /usr/local/opt/python. You may need to add the following line to your $HOME/.bash_profile file and then restart your terminal. Do not add this line to your .bashrc file as this will invariably cause issues with subprocesses.
export PATH=/usr/local/opt/python/libexec/bin:$PATH
Pip
Python 3 comes bundled with a python package manager called `pip` which is used to install all project related python dependencies. To make sure we have `pip` installed run in a terminal:
python -m ensurepip
Setting up your Project
Creating a virtual environment
Most python developers will use a virtual environment to isolate python and any project related dependencies from being installed into the system. This practice is a safety measure to prevent a developer's computer from becoming unstable and is highly recommended.
Installing vsh
Vsh is a virtual environment generation tool. This will help you manage and build virtual environments. Most python developers will use a virtual environment to isolate their projects from their system. Additionally, vsh runs the python virtualenv in a sub-process shell To install:
python3 -m pip install vsh
Creating a virtual environment using vsh
To create a new virtual environment with python 3 for our project, just use the following:
vsh rl
You should now be in your virtual environment
(venv:rl|3.7.0) bash-3.2$
To make sure, test your python version. You should see something like version "3.7.0". Note that the version number and virtual env name is also in the command-line prompt
(venv:rl|3.7.0) bash-3.2$ python --version
Installing libtcod into our project
Use pip
(venv:rl|3.7.0) $ pip install tcod
Validate that we have libtcod installed.
(venv:rl|3.7.0) $ python -c "import tcod"
Folder structure
Our first roguelike will be run entirely from a single file, firstrl.py. However, to support some future needs regarding packaging and to make development easier, we need to add our dependencies into the project folder.
When we're all done, the basic folder structure should look like this:
- \project\
- \firstrl.py
mkdir -p $HOME/repos/mine/roguelike
touch $HOME/repos/mine/roguelike/firstrl.py
Finishing touches
Congratulations!
You're ready to start editing firstrl.py!
Now you're ready to start writing code.