mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-02-14 17:49:53 +00:00
114 lines
3.3 KiB
Markdown
114 lines
3.3 KiB
Markdown
---
|
|
title: Python 3 (via pyenv)
|
|
homepage: https://webinstall.dev/pyenv
|
|
tagline: |
|
|
Python is an easy-to-learn, introductory programming language.
|
|
---
|
|
|
|
To update or switch versions, run `pyenv install -v 3` (or `3.10`, etc).
|
|
|
|
### Files
|
|
|
|
These are the files / directories that are created and/or modified with this
|
|
install:
|
|
|
|
```sh
|
|
~/.config/envman/PATH.env
|
|
~/.pyenv/bin/
|
|
~/.pyenv/shims/
|
|
|
|
# pyenv also loads shell hooks via
|
|
~/.bashrc
|
|
~/.config/fish/config.fish
|
|
~/.zshrc
|
|
```
|
|
|
|
### How to Install python3 on macOS
|
|
|
|
Install Xcode tools first:
|
|
|
|
```sh
|
|
xcode-select --install
|
|
```
|
|
|
|
### How to Install python3 on Linux
|
|
|
|
Make sure that you already have the necessary build tools installed:
|
|
|
|
```sh
|
|
# required
|
|
sudo apt update
|
|
sudo apt install -y build-essential zlib1g-dev libssl-dev
|
|
|
|
# recommended
|
|
sudo apt install -y libreadline-dev libsqlite3-dev \
|
|
libffi-dev libbz2-dev liblzma-dev
|
|
```
|
|
|
|
## Cheat Sheet
|
|
|
|

|
|
|
|
Python is a introductory programming language that focuses on Software
|
|
Engineering principles - as laid out in _The Zen of Python_ (above).
|
|
|
|
Note: `pyenv` (used here) is the only way you should ever install Python,
|
|
otherwise you risk messing up your system version of python, and existing python
|
|
projects.
|
|
|
|
## How to reset to the system python?
|
|
|
|
`pyenv` installs a conflict-free version of python that will not interfere with
|
|
system utilities (which is why we love it so much).
|
|
|
|
However, in the rare event that you need to switch your user profile's python
|
|
back to the system version, you can do so:
|
|
|
|
```sh
|
|
pyenv global system
|
|
```
|
|
|
|
## How to use a specific version of python in a project?
|
|
|
|
Go into the root of your project repository and run this, for example:
|
|
|
|
```sh
|
|
pyenv local -v 3.10.0
|
|
```
|
|
|
|
Change 3.10.0 to the version you want for that project, of course. 😁
|
|
|
|
## Where to learn Python?
|
|
|
|
[Learn Python 3 The Hard Way](https://learnpythonthehardway.org) is probably the
|
|
best beginner resource.
|
|
|
|
- [Physical Book + Video Course](https://amzn.to/3opwwxT) -
|
|
- [eBook + Video Course](https://shop.learncodethehardway.org/access/buy/9/)
|
|
- [Free Digital Copy](https://learnpythonthehardway.org/python3/)
|
|
|
|
## What to learn after Python?
|
|
|
|
Python's a great language for learning to program and it still has a lot of
|
|
practical uses, but it's a product of its time and not as well-suited for modern
|
|
web development as more modern languages that were designed to handle the types
|
|
of problems that exist for programmers in today's world.
|
|
|
|
What are the best alternatives?
|
|
|
|
- [Go](https://webinstall.dev/golang) is a better choice for systems programming
|
|
and web development, and "is a language you can learn in a weekend".
|
|
- [Rust](https://webinstall.dev/rustlang) is a better choice for games and
|
|
machine learning, but may be more difficult to master.
|
|
- [Node](https://webinstall.dev/node) is a better choice for web programming and
|
|
programmer tooling.
|
|
|
|
That all said, it's probably still worth it to learn Python first - it has much
|
|
better learning resources than Node, and the learning resources for Go and Rust
|
|
typically assume you've had experience with one of the languages they replace...
|
|
such as Python.
|
|
|
|
Once you learn _how to program_, you can easily apply that to _any_ language.
|
|
|
|
90%+ of programming is _programming_. Maybe 10% is the language you choose.
|