Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: moduulin käyttäminen

Sivun loppuun

Wisva [09.06.2008 18:25:19]

#

Olen yrittänyt aloittaa python ohjelmointia, mutta en ole tajunnut, miten moduuli avataan käyttöön.

Ja kiinnostaisi myös miten kehittyneitä ohjelmia pythonilla saa aikaan?

Blaze [09.06.2008 19:06:08]

#

Wisva kirjoitti:

Olen yrittänyt aloittaa python ohjelmointia, mutta en ole tajunnut, miten moduuli avataan käyttöön.

Eikös siihen riitä se import-rivi tiedoston alussa?

Wisva kirjoitti:

Ja kiinnostaisi myös miten kehittyneitä ohjelmia pythonilla saa aikaan?

Ihan mitä vaan voit kuvitella. Python-softia, joita on ite tullu käytettyä on Frets on Fire, Trac ja Portage.

Wisva [09.06.2008 19:20:14]

#

Blaze kirjoitti:

Wisva kirjoitti:

Olen yrittänyt aloittaa python ohjelmointia, mutta en ole tajunnut, miten moduuli avataan käyttöön.

Eikös siihen riitä se import-rivi tiedoston alussa?

Kiitos, mutta voisitko selittää tarkemmin? En nimittäin tuosta ihan tuosta tajunnut...

Chiman [09.06.2008 19:28:34]

#

Ladataan random-moduuli ja käytetään sitä:

import random

a = range(3, 9)
print a
print random.choice(a)
random.shuffle(a)
print a

http://docs.python.org/lib/module-random.html

Pythonilla voi tehdä kuinka kehittyneitä ohjelmia vain. Lähinnä kyse on siitä, mikä kieli kannattaa valita missäkin tilanteessa.

Wisva [10.06.2008 16:52:52]

#

Missä kansiossa ton moduulin pitää olla?

Chiman [10.06.2008 17:47:44]

#

Random-moduuli tulee Pythonin mukana, sen sijainti on epäoleellista. Koodiesimerkkini pitäisi toimia tuollaisenaan, jos Python on asennettu.

pipo [10.06.2008 22:17:26]

#

Wisva kirjoitti:

Missä kansiossa ton moduulin pitää olla?

>>> import sys
>>> print sys.path
['C:\\Python25\\Lib\\idlelib', 'C:\\Python25\\lib\\site-packages\\setuptools-0.6c8-py2.5.egg', 'C:\\Python25\\python25.zip', 'C:\\Python25\\DLLs', 'C:\\Python25\\lib', 'C:\\Python25\\lib\\plat-win', 'C:\\Python25\\lib\\lib-tk', 'C:\\Python25', 'C:\\Python25\\lib\\site-packages', 'C:\\Python25\\lib\\site-packages\\Numeric', 'C:\\Python25\\lib\\site-packages\\PIL']


Noitten hakemistojen lisäksi käy se hakemisto jossa käsiteltävä koodi sijaitsee. Lähde
tueksi.

Wisva [12.06.2008 19:26:38]

#

OK. Mutta minne minun pitää laittaa oma moduulini, jotta python löytää sen, kun kutsun sitä import-komennolla?

Antti Laaksonen [12.06.2008 19:43:25]

#

Ainakin jos moduuli ja ohjelma ovat samassa hakemistossa, kaiken pitäisi toimia suoraan.

# moduuli.py
def kirjoita():
        print "Tämä tulee moduulista!"
# ohjelma.py
import moduuli

moduuli.kirjoita()

Wisva [16.06.2008 11:22:32]

#

Loin tekstitiedoston, jossa oli koodi:

 #moduuli.py
x=10
print x

ja laiton sen python25 nimiseen kansioon, jossa python(command line) on.

Kysymys kuuluu teinkö mitään oikein? (Ja miten homma pitäisi tehdä?)

Chiman [16.06.2008 12:24:09]

#

Omille kooditiedostoille kannattaa tehdä oma hakemisto, eikä sijoittaa niitä (pääsääntöisesti) python-tulkin hakemistoihin.

Tee sen jälkeen mitä Antti neuvoi. Nuo punaiset kommenttirivit kertovat nimen, joka tallennettavalle tiedostolle pitää antaa. Toiselle moduuli.py ja toiselle ohjelma.py.

Wisva [23.06.2008 13:44:35]

#

En tiedä ymmärsinkö Chimanin viestiä, mutta joka tapauksessa en vieläkään ymmärrä, mitä tein tuossa nyt väärin?

Eli kun teksti tiedoto oli pythonin kansiossa, yritinm käyttää sitä komennolla "import moduuli".

Chiman [23.06.2008 13:54:15]

#

Mitä tapahtui kun yritit käyttää sitä? Onnistuiko? Tuliko virheilmoitus?

Wisva [02.07.2008 18:51:05]

#

Kyllä, tuli virheilmoitus. Tällainen:

Traceback (most recent call last):
file (stdin, line 1, in <module>
ImportError: no module named moduuli

Chiman [02.07.2008 19:16:09]

#

Siinä tapauksessa sinulla ei ollut moduuli.py-tiedostoa samassa hakemistossa tai path-muuttujan hakemistoissa.

Tuo virheilmoitus taitaa kertoa sen, ettet ollut kirjoittanut ohjelmaa esim. ohjelma.py-tiedostoon, vaan kirjoitit suoraan "import moduuli" interaktiivisessa tulkissa (esim. IDLE).

Antti neuvoi jo yllä tarpeelliset tiedostot.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta