2011-02-01 14 views
6

Znalazłem moduł strony trzeciej, z którego chciałbym skorzystać. Jak technicznie zaimportować ten moduł? W szczególności chcę użyć modułu o nazwie context_manager. oczywiście, nie mogę po prostu import garlicsim.general_misc.context_manager, ponieważ nie znajdzie garlicsim. Więc co powinienem napisać, żeby to zaimportować?Jak importować moduł zewnętrzny w Pythonie?

EDYCJA: Używam zarówno Pythona 3.x, jak i Pythona 2.x i chciałbym uzyskać odpowiedzi dotyczące obu wersji.

+0

Używasz pytona 2 lub Pythonie 3? Ten link jest dla pakietu Pythona 3. – chmullig

+0

@chmullig: Używam zarówno Python 2, jak i Python 3. Właśnie dodałem to do mojego pytania. – snakile

Odpowiedz

6

W przypadku garlicsim chcesz zainstalować go po garlicsim na installation instructions. Możesz również pobrać kod i we właściwym katalogu uruchomić python setup.py install dla tej i prawie każdej innej biblioteki.

Jedna uwaga, ponieważ możesz być nowy dla Pythona, jest to biblioteka Pythona 3. Jeśli używasz Pythona 2 (bardziej prawdopodobne, jeśli nie wiesz), nie będzie działać poprawnie. Będziesz chciał zainstalować python 2 version.

1

Musisz zainstalować moduł gdzieś w swojej PYTHONPATH. W przypadku prawie wszystkich modułów Pythona można użyć skryptu easy_install lub jego własnego skryptu setup.py, aby zrobić to za Ciebie.

0

Instalacja

GarlicSim is dead ale stillavailable:

C:\Python27\Scripts>pip search garlicsim 
garlicsim_lib    - Collection of GarlicSim simulation packages 
garlicsim_lib_py3   - Collection of GarlicSim simulation packages 
garlicsim_wx    - GUI for garlicsim, a Pythonic framework for 
          computer simulations 
garlicsim     - Pythonic framework for working with simulations 
garlicsim_py3    - Pythonic framework for working with simulations 

Zastosowanie pip install garlicsim go zainstalować.

Wykorzystanie

Według the Python style guide:

Imports są zawsze umieścić na początku pliku, tuż po każdym module komentarze i docstrings, a przed globalnych modułu i stałych.

Import powinny być pogrupowane w następującej kolejności:

  1. standardowe importu biblioteki
  2. związane importuje osób trzecich
  3. lokalna aplikacja/Library specyficzne importu

należy umieścić pustą linię między każdą grupą importu.

>>> import garlicsim.general_misc.context_manager as CM 
>>> help(CM) 
Help on module garlicsim.general_misc.context_manager in garlicsim.general_misc: 

NAME 
    garlicsim.general_misc.context_manager - Defines the `ContextManager` and `ContextManagerType` classes. 

FILE 
    c:\python27\lib\site-packages\garlicsim\general_misc\context_manager.py 

DESCRIPTION 
    Using these classes to define context managers allows using such context 
    managers as decorators (in addition to their normal use) and supports writing 
    context managers in a new form called `manage_context`. (As well as the 
    original forms). 
[...] 
>>> from garlicsim.general_misc.context_manager import ContextManager 
>>> help(ContextManager) 
Help on class ContextManager in module garlicsim.general_misc.context_manager: 

class ContextManager(__builtin__.object) 
| Allows running preparation code before a given suite and cleanup after. 

alternatywna

Wygląda na to, że to already in Python 3.2:

klasy contextlib.ContextDecorator - klasy bazowej, która umożliwia menedżera kontekst być również używany jako dekorator.

I contextmanager is as old as Python 2.5:

from contextlib import contextmanager 

@contextmanager 
def tag(name): 
    print "<%s>" % name 
    yield 
    print "</%s>" % name 

>>> with tag("h1"): 
... print "foo" 
... 
<h1> 
foo 
</h1>