Git Product home page Git Product logo

setuptools_helloworld's Introduction

Hello World

Hello World jako przykład użycia modułu setuptools. Więcej informacji można znaleźć w dokumentacji.

Struktura

├── hello_world      # paczka hello_world      
│   ├── hello.py     # moduł hello
│   └── __init__.py  # inicjalizacja paczki
├── LICENSE          # plik z licencją
├── README.md        # opis projektu
└── setup.py         # definicja instlacji

setup.py

W pliku setup.py wywołujemy funkcję setuptools.setup podając informacje o naszym projekcie:

"""Minimalny przykład wykorzystanie modułu setuptools"""
from setuptools import setup


setup(
    name="Hello World",  # nazwa projektu
    version=1.0,  # wersja
    description="Przykład użycia setuptools",  # krótki opis
    author="Tomasz Golan",  # autor
    author_email="[email protected]",  # adres mailowy autora
    license="MIT",  # licencja
    url="https://github.com/TomaszGolan/setuptools_helloworld",  # strona projektu
    packages=["hello_world"],  # paczki, które należy uwzględnić przy instalacji
    install_requires=["click"],  # zależności
    entry_points={'console_scripts': "hello=hello_world.hello:main"}  # polecenie=paczka.moduł:funkcja
)                                                                     # czyli którą funkcję wywołać
                                                                      # gdy uruchomimy program danym poleceniem

Kluczowe są opcje:

  • packages - lista paczek, które chcemy włączyć do projektu (w tym przypadku istnieje tylko paczka hello_world, ale projekt może być bardziej rozbudowany)
  • install_requires - lista paczek do zainstalowania (których wymaga nasz projekt do poprawnego działania)
  • entry_points - tu ustalamy polecenie, którym będziemy uruchamiać nasz program oraz funkcję, która ma być wywołana

W tym przypadku program składa się z jednej paczki hello_world, używa modułu click a komendą hello chcemy wywołać funkcję main z modułu hello z paczki hello_world.

hello_world

Paczka hello_world zawiera tylko plik __init__.py, który jest wymagany oraz hello.py, w który mieści się nasz cały mini projekt. W hello.py definiujemy funkcję main, którą chcemy wywołać poleceniem hello (po instalacji programu).

Ostatni fragment:

if __name__ == "__main__":
    main()

nie jest konieczny, ale umożliwia nam uruchomienie hello.py bez instalacji, tzn. python hello.py (więcej informacji w notatkach z wykładu).

Instalacja

Aby zainstalować program można skorzystać z pip lub ręcznie wywołać setup.py.

Metoda pierwsza

pip install git+https://github.com/TomaszGolan/setuptools_helloworld.git

Metoda druga

git clone https://github.com/TomaszGolan/setuptools_helloworld.git
cd setuptools_helloworld/
python setup.py install

Uruchamianie

Aby uruchomić tak zainstalowany program wystarczy użyć komendy zdefiniowanej z entry_points, czyli w tym przypadku hello:

$ hello
Hello World!

Informacje o programie można sprawdzić korzystając z pip show [nazwa zdefiniowane przez name]:

$ pip show Hello-World
Name: Hello-World
Version: 1.0
Summary: Przykład użycia setuptools
Home-page: https://github.com/TomaszGolan/setuptools_helloworld
Author: Tomasz Golan
Author-email: [email protected]
License: MIT
Location: /home/goran/soft/anaconda3/lib/python3.6/site-packages
Requires: click

Odinstalowanie

Program można odinstalować korzystając z pip uninstall [nazwa]:

$ pip uninstall Hello-World

setuptools_helloworld's People

Contributors

tomaszgolan avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.