Python

Aspekty rozwoju oprogramowania komercyjnego

Plan wykładu

● Kod wynikowy

● Aspekty prawne (licencje)

Python

2

Aplikacje

● Aplikacje w systemach U*IX

● Aplikacje w systemach MS Windows

Python

3

Aplikacja Pythonowa

● main.py

● lib/*.pyc

● moduly/*.pyo

● ...

Python

4

Plik wykonywalny w U*IX

Kombinacja skryptu i pliku zip

Python

5

Struktura progamu

● main.py

● lib/*.py

Python

6

Kompilacja programu

● Utworzenie plików .pyo:

python -O *.py

Python

7

Obejście problemu

Polecenie

python -O -c ' import main'

tworzy pliki *.pyo

Python

8

Wrzucenie wszystkiego do pliku zip aplikacja .pyo lib/pyo

Python

9

Uruchamianie plików

Python umożliwia uruchamianie modułów bezpośrednio z plików *.zip

Python

10

Struktura pliku

Pewien skrypt w bash'u

Skompresowane pliki *.pyo

Python

11

Utworzenie pliku

cat run.uix dist.zip > myapp

chmod +x myapp

./myapp

Python

12

Postać skryptu

#!/bin/bash

exec python - $O $@ << END_START

import main

main.main()

END_START

Python

13

Kompilacja dla systemów MS

Windows

Jak zrobić *.exe?

Python

14

Moduł distutils

● Moduł do tworzenia i instalowania modułów

● Moduł py2exe jest dodatkiem do distutils (tylko dla wersji pod MS Windows!)

Python

15

Plik setup

from distutils.core import setup

import sys, os, py2exe

name = sys.argv[1]

sys.argv[1] = 'py2exe';

sys.path.append(os.path.dirname(os.path.abspat h(name)))

setup(name=name[:-3], scripts=[name]) Python

16

Aspekty prawne Pythona Software Foundation License

● Wersje do 1.6: zgodna z GPL

● Wersje 1.6-2.0.1: niezgodna z GPL

● Wersje od 2.1: zgodne z GPL

Python

17

Postulaty Open Source

● Swoboda przekazywania i dystrybuowania oprogramowania

● Dostępność kodu źródłowego

● Wolność modyfikacji oprogramowania

● Brak ograniczeń w uruchamianiu programu Python

18

Programy własne

● Jeśli napiszemy sami program to mamy do niego prawa autorskie

● Kompilator Pythona tylko przetwarza pliki źródłowe, więc jesteśmy właścicielami wyniku (tj. skompilowanego kodu)

● Nasze programy zazwyczaj mogą mieć własną licencję

Python

19

Kłopoty

● Biblioteki: GPL, LGPL

Python

20

KONIEC

Python

21