Skip to content

Commit 68d2674

Browse files
authored
Merge pull request #442 from encukou/lesson-dir
Clarify and standardize directory structure and venv location #442
2 parents eb7478e + 82e895c commit 68d2674

File tree

15 files changed

+330
-367
lines changed

15 files changed

+330
-367
lines changed

courses/pyladies/info.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ plan:
1818
- lesson: beginners/cmdline
1919
- lesson: beginners/install
2020
- lesson: beginners/first-steps
21+
- lesson: beginners/venv-setup
2122
- lesson: beginners/install-editor
2223
- lesson: git/install
2324
- title: Tahák na klávesnici (PDF)

lessons/beginners/comparisons/index.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -93,26 +93,27 @@ print(False)
9393

9494
## Podmínky
9595

96-
{% if var('pyladies') -%}
97-
{% set rootname = 'pyladies' %}
98-
{%- else -%}
99-
{% set rootname = 'naucse-python' %}
100-
{%- endif %}
101-
10296
Teď oprášíme program na výpočet obvodu a obsahu.
103-
Do nového souboru, třeba <code><span class="pythondir">~/{{ rootname }}</span>/02/if.py</code>,
104-
napiš následující program.
105-
Co se stane, když jako stranu zadáš záporné číslo?
106-
Dává výstup smysl?
97+
98+
Otevři si v editoru nový soubor.
99+
Jestli ještě v adresáři, kde máš soubory ke kurzům Pythonu,
100+
nemáš adresář pro tuto lekci (třeba `02`), vytvoř si ho.
101+
Nový soubor ulož do něj pod jménem `if.py`.
102+
103+
Do souboru pak napiš následující program:
107104

108105
```python
109106
strana = float(input('Zadej stranu čtverce v centimetrech: '))
110107
print('Obvod čtverce se stranou', strana, 'je', 4 * strana, 'cm')
111108
print('Obsah čtverce se stranou', strana, 'je', strana * strana, 'cm2')
112109
```
113110

111+
Program spusť. Funguje?
112+
113+
Co se stane, když jako stranu zadáš záporné číslo?
114+
Dává výstup smysl?
114115

115-
Tady je vidět, jak počítač dělá přesně, co se mu řekne, a nepřemýšlí o významu.
116+
Tady je vidět, jak počítač dělá přesně, co se mu řekne. Nepřemýšlí o významu.
116117
Bylo by dobré uživateli, který zadá záporné číslo,
117118
přímo říct, že zadal blbost. Jak na to?
118119

lessons/beginners/first-steps/index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ Zkontroluj si, že máš aktivované virtuální prostředí (na začátku pří
88
Je-li tomu tak, nezbývá než – konečně – pustit Python.
99
K tomu použij příkaz `python`:
1010

11-
``` plain
11+
``` console
1212
(venv)$ python
13-
Python 3.4.0 (default, Jan 26 2014, 18:15:05)
13+
Python 3.6.0 (default, Jan 26 2014, 18:15:05)
1414
[GCC 4.8.2 20131212 (Red Hat 4.8.2-7)] on linux
1515
Type "help", "copyright", "credits" or "license" for more information.
16-
>>>
1716
```
1817

1918
Příkaz vypíše několik informací.
2019
Z prvního řádku se můžeš ujistit, že používáš Python 3.
21-
Třemi „zobáčky“ `>>>` pak Python poprosí o instrukce.
20+
21+
Python pak třemi „zobáčky“ `>>>` poprosí o instrukce.
2222
Je to jako v příkazové řádce, ale místo příkazů jako
2323
`cd` a `mkdir` sem budeš psát příkazy Pythonu.
2424

lessons/beginners/hello-world/index.md

Lines changed: 33 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -21,67 +21,63 @@ V něm vytvoř nový soubor, do kterého napiš následující text:
2121
print("Ahoj světe!")
2222
```
2323

24-
{% if var('pyladies') -%}
25-
{% set rootname = 'pyladies' %}
26-
{%- else -%}
27-
{% set rootname = 'naucse-python' %}
28-
{%- endif %}
29-
30-
Pak soubor ulož pod jménem <code><span class="pythondir">~/{{ rootname }}</span>/02/ahoj.py</code>.
31-
Za <code class="pythondir">~/{{ rootname }}</code> musíš doplnit adresář,
32-
který jsi vytvořil{{a}} minule, při [instalaci Pythonu](../../beginners/install/).
33-
Podadresář `02` musíš vytvořit.
34-
Do něj pak soubor ulož jako `ahoj.py`.
35-
36-
Pokud máš v ukládacím okýnku možnost zvolit <em>kódování</em>, zvol <code>UTF-8</code>.
37-
Můžeš–li zvolit typ souboru, zvol <code>.py</code> nebo „všechny soubory“.
38-
24+
Pak soubor ulož jako `ahoj.py`:
3925

40-
Některé systémy a editory se snaží přípony jako <code>.py</code> schovávat
41-
nebo si doplňovat přípony vlastní. V příkazové řádce se ale vždycky ukáže
42-
opravdové jméno.
43-
Proto ještě v příkazové řádce pomocí `cd` přejdi do adresáře <code><span class="pythondir">~/{{ rootname }}</span>/02</code>
44-
a pomocí `ls` (Unix) nebo `dir` (Windows) zkontroluj, že se soubor opravdu
45-
jmenuje `ahoj.py` a ne třeba `ahoj.py.txt`.
26+
* V adresáři, kde máš soubory ke kurzům Pythonu, si založ adresář pojmenovaný
27+
podle čísla lekce (např. `02`).
28+
Měl by být vedle tvého virtuálního prostředí.
29+
* Do něj pak soubor ulož pod jménem `ahoj.py`.
4630

31+
Pokud máš v ukládacím okýnku možnost zvolit *kódování*, zvol `UTF-8`.
32+
Můžeš–li zvolit typ souboru, zvol `.py` nebo „všechny soubory“.
4733

4834
## Spuštění
4935

50-
Otevři si příkazovou řádku, aktivuj si v ní virtuální prostředí,
51-
vlez do adresáře <code><span class="pythondir">~/{{ rootname }}</span>/02</code>
52-
a zadej tento příkaz:
53-
54-
```console
55-
$ python ahoj.py
56-
```
36+
Otevři si příkazovou řádku.
37+
Pomocí `cd` donaviguj do adresáře, kde máš soubory ke kurzům Pythonu.
5738

5839
> [note]
5940
> S příkazovou řádkou jsme se seznámil{{gnd('i', 'y', both='i')}}
6041
> [minulé lekci](../../beginners/cmdline/), která popisuje i změnu aktuálního
6142
> adresáře pomocí příkazu `cd`.
62-
> Aktivaci virtuálního prostředí jsme probral{{gnd('i', 'y', both='i')}} společně
63-
> [instalací Pythonu](../../beginners/install/).
43+
44+
Aktivuj si virtuální prostředí.
45+
46+
> [note]
47+
> Příkaz k tomu jsme si ukázali na konci
48+
> [návodu na tvorbu virtuálního prostředí](../venv-setup/); končí `activate`.
49+
50+
51+
Pak a zadej tento příkaz:
52+
53+
```console
54+
(venv)$ python ahoj.py
55+
```
6456

6557
> [note] Poznámka pro Windows a starší Python
6658
> V nečeských Windows s Pythonem 3.5 či nižším bude třeba před
6759
> programem spustit `chcp 1250`, jinak bude program píšící české
6860
> znaky končit chybou `UnicodeEncodeError`.
69-
> Je to trochu polovičaté řešení, ale pro naše příklady bude stačit.
7061
71-
Pokud se vypíše hláška, gratuluji!
62+
Pokud se vypíše hláška `Ahoj světe!`, gratuluji!
7263
Napsal{{a}} jsi svůj první program v Pythonu!
7364

7465
Jestli to nefunguje, zkontroluj, že:
7566

7667
* Máš zapnuté virtuální prostředí.
7768
(Na příkazové řádce se musí ukazovat <code>(venv)</code>;
7869
pokud tam není, použij příkaz „activate“ z [minula]({{ lesson_url('beginners/install') }}).)
79-
* Jsi ve správném adresáři, <code><span class="pythondir">~/{{ rootname }}</span>/02</code>.
80-
(Za <span class="pythondir">~/{{ rootname }}</span> musíš doplnit adresář, který jsi vytvořila minule.)
70+
* Jsi ve správném adresáři. Zkus `pwd` (Unix) nebo `cd` (Windows).
71+
Aktuální adresář musí být ten, do kterého jsi uložil{{a}}
72+
soubor s programem.
73+
* Soubor se opravdu jmenuje `ahoj.py`.
74+
Pomocí `ls` (Unix) nebo `dir` (Windows) zkontroluj, že se soubor opravdu
75+
jmenuje `ahoj.py` a ne třeba `ahoj.py.txt`.
76+
Jestli ne, ulož ho znovu pod správným jménem.
8177
* Soubor `ahoj.py` obsahuje správný příkaz, včetně všech uvozovek a závorek.
82-
* Znak `$` nezadáváš – ten je tam proto, aby bylo poznat že jde o příkaz příkazové
83-
řádky.
84-
Na `$` (nebo, na Windows, `>`) končí dotaz, který vypíše počítač.
78+
* Slovo `(venv)` ani znak `$` nezadáváš – v materiálech jsou proto, aby bylo
79+
poznat že jde o příkaz příkazové řádky.
80+
Na `$` (nebo, na Windows, `>`) končí dotaz, který vypíše sám počítač.
8581
Příkaz, který zadáváš ty, je jen `python ahoj.py`.
8682

8783
A jestli to pořád nefunguje, zeptej se

lessons/beginners/install/index.md

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,9 @@
11
# Instalace Pythonu
22

3-
V této sekci uděláme dvě věci:
3+
V této sekci nainstalujeme Python.
44

5-
* Nainstalujeme Python a Virtualenv
6-
* Vytvoříme si virtuální prostředí pro práci v Pythonu
7-
8-
Možná se ptáš, proč je to všechno potřeba?
9-
10-
Python je jak programovací jazyk (způsob, jak říkat počítačům, co dělat),
11-
tak program, který potřebujeme, aby se s námi počítač tím jazykem domluvil.
12-
13-
Virtuální prostředí pak je něco, co zajistí, aby se všechny počítače chovaly
14-
zhruba stejně.
15-
Až ho zprovozníme, nebudeme potřebovat materiály zvlášť pro Linux, zvlášť pro
16-
Windows a zvlášť pro Mac.
17-
18-
> [note]
19-
> V budoucnu využijeme druhou výhodu: každé virtuální prostředí je oddělené od
20-
> ostatních, takže když doinstalujeme nějakou knihovnu (rozšíření pro Python),
21-
> projeví se to jen v jednom virtuálním prostředí.
22-
> Pokud by se při práci na projektu něco pokazilo, neohrozí to další projekty
23-
> ve tvém počítači.
24-
25-
Instalace samotná je na každém počítači jiná.
26-
Vyber si stránku podle svého operačního systému:
5+
To se na každém druhu operačního systému dělá trošku jinak.
6+
Vyber si stránku podle svého systému:
277

288
* [Linux]({{ subpage_url('linux') }})
299
* [Windows]({{ subpage_url('windows') }})

lessons/beginners/install/linux.md

Lines changed: 11 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,20 @@ Objeví-li se `bash: python3: command not found` nebo podobná chyba,
2929
doinstaluj Python.
3030
Konkrétní příkaz záleží na distribuci:
3131

32-
* Fedora:
32+
* **Fedora**:
3333
{% filter markdown(inline=True) %}
3434
```console
3535
$ sudo dnf install python3
3636
```
3737
{% endfilter %}
38-
* Ubuntu:
38+
* **Ubuntu**:
3939
{% filter markdown(inline=True) %}
4040
```console
4141
$ sudo apt-get install python3
4242
```
4343
{% endfilter %}
4444

45-
Používáš-li jinou distribuci, předpokládám, že instalovat programy už umíš. :)
45+
Používáš-li jinou distribuci, doufám, že instalovat programy už umíš.
4646

4747

4848
{{ anchor('check-tkinter') }}
@@ -63,7 +63,7 @@ Zavři ho a přejdi na [doinstalování `virtualenv`](#install-virtualenv).
6363

6464
Jestli ne, modul `tkinter` ještě nainstaluj:
6565

66-
* Fedora:
66+
* **Fedora**:
6767
{% filter markdown(inline=True) %}
6868
```console
6969
$ sudo dnf install python3-tkinter
@@ -93,102 +93,21 @@ $ python3 -m ensurepip --version
9393
```
9494

9595
Objeví-li se výpis začínající „pip“, máš funkční `venv` nainstalovaný.
96-
Přejdi na sekci [vytvoření virtuálního prostředí](#setup-venv).
96+
Zbytek této sekce můžeš přeskočit!
9797

98-
Objeví-li se nápis `No module named ensurepip`, je potřeba doinstalovat
99-
alternativu, Virtualenv.
100-
Zapamatuj si, že Virtualenv budeš muset v dalším kroku použít,
101-
a nainstaluj ho:
98+
Objeví-li se ale nápis `No module named ensurepip`, je potřeba doinstalovat
99+
alternativu, Virtualenv:
102100

103101
<!-- na Fedoře se tohle nestává -->
104102

105-
* Ubuntu:
103+
* **Ubuntu**:
106104
{% filter markdown(inline=True) %}
107105
```console
108106
$ sudo apt-get install python-virtualenv
109107
```
110108
{% endfilter %}
111109

112-
Používáš-li jinou distribuci, předpokládám, že instalovat programy už umíš. :)
113-
114-
115-
{{ anchor('setup-venv') }}
116-
## Vytvoření virtuálního prostředí
117-
118-
<!-- Pozn. Tahle sekce je velice podobná pro Linux, Mac i Windows;
119-
měníš-li ji, koukni se jestli není změna potřeba i jinde. -->
120-
121-
{%- if var('pyladies') -%}
122-
{% set rootname = 'pyladies' %}
123-
{%- else -%}
124-
{% set rootname = 'naucse-python' %}
125-
{%- endif -%}
126-
127-
Nakonec vytvoř virtuální prostředí.
128-
129-
Zvol si adresář (složku), ve které budeš mít soubory k PyLadies.
130-
Může to být třeba <code>/home/<i>jméno</i>/{{ rootname }}</code>,
131-
neboli <code class="pythondir">~/{{ rootname }}</code>.
132-
Adresář vytvoř a poznamenej si, kde je.
133-
134-
Vytváříš-li adresář jinde, nebo s jiným názvem, tak kdykoli ve zbytku
135-
materiálů uvidíš <code class="pythondir">~/{{ rootname }}</code>, doplň
136-
místo toho „svůj“ adresář.
137-
138-
Zvolený adresář po vytvoření nesmíš přesouvat jinam – když to uděláš,
139-
přestane virtuální prostředí fungovat.
140-
Proto ho nedoporučuji vytářet na Ploše.
141-
142-
> [note]
143-
> Kdybys někdy chtěl{{a}} adresář přece jen přesunout,
144-
> musel{{a}} bys smazat virtuální prostředí a vytvořit nové.
145-
146-
Teď když je tenhle adresář vytvořený, otevři příkazovou řádku
147-
a příkazem `cd` se do něj přepni:
148-
<!-- XXX: Special highlight in source code needed -->
149-
```console
150-
$ cd ~/{{ rootname }}
151-
```
152-
153-
Pak virtuální prostředí vytvoř.
154-
Pokud jsi v přeskočil{{a}} instalaci Virtualenv, zadej:
155-
156-
```console
157-
$ python3 -m venv venv
158-
```
159-
160-
jinak:
161-
162-
```console
163-
$ virtualenv -p python3 venv
164-
```
165-
166-
Tím se ti vytvořil adresář <code><span class="pythondir">~/{{ rootname }}</span>/venv</code>,
167-
ve kterém jsou soubory s virtuálním prostředím.
168-
Můžeš se podívat dovnitř, ale nikdy tam nic neměň.
169-
170-
171-
## Aktivace virtuálního prostředí
172-
173-
Nakonec virtuální prostředí aktivuj:
174-
175-
<div class="highlight">
176-
<pre><code><span class="gp">$</span> source <span class="pythondir">~/{{ rootname }}</span>/venv/bin/activate
177-
</code></pre>
178-
</div>
179-
180-
Po spuštění tohoto příkazu by se mělo na začátku příkazové řádky
181-
(před `$`) objevit slovo `(venv)`.
182-
Tak poznáš, že je virtuální prostředí *aktivní*.
183-
184-
Tenhle příkaz si zapiš. Budeš ho muset zadat vždycky, když pustíš příkazovou řádku,
185-
než se pustíš do programování.
186-
187-
{% if var('pyladies') %}
188-
Máš-li vytištěné <a href="http://pyladies.cz/v1/s001-install/handout/handout.pdf">domácí projekty</a>,
189-
příkaz si poznač, ať ho do příště nezapomeneš :)
190-
{% endif %}
110+
Používáš-li jinou distribuci, doufám, že instalovat programy už umíš.
191111

192-
Python máš, můžeš se pustit do programování!
193-
To už bude stejné pro tebe i pro lidi na Linuxu a Windows.
194-
Sejdeme se na [další stránce]({{ lesson_url('beginners/first-steps') }}), kde uděláme první krůčky s Pythonem.
112+
Instaluješ-li Virtualenv, **zapamatuj si**, že ho budeš muset použít později
113+
při vytváření virtuálního prostředí.

0 commit comments

Comments
 (0)