Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python ja chilkat

Burton [28.12.2007 12:21:14]

#

Niinpä niin, en tiedä kuinka chilkat-moduulin saa käyttöön Pythonissa. Chilkatin oma "Quickstart" neuvoi näin:

Quickstart kirjoitti:

Assuming you've already installed Python 2.5 and are familiar with writing scripts in Python,
you only need to add a __path__ = ["dir_with_chilkat_pyd"] and require chilkat statement
at the beginning of your script to use the Chilkat module.

...minkä jälkeen kirjoitin koodiini:

__path__ = ["chilkatPython"] # C:\...\Python25\chilkatPython\
require chilkat

import sys
import chilkat
.
.
.

mutta python sanoo Syntax Erroria requiren kohdalla.

Pekka Karjalainen [28.12.2007 17:59:05]

#

Pythonissa ei ole require-sanaa. Tuon laittamasi importin pitäisi riittää, jos se on kunnollinen Python-mokkula.

Burton [28.12.2007 21:50:07]

#

Miksi sitten modulen opas neuvoisi noin? Ja mihin ylipäätänsä nuo moduulit pitäisi asettaa?
Mukana tuli tämmöistä:

15.11.2007  09:58           231 475 chilkat.py
05.10.2007  05:54           427 381 chilkat.pyc
28.12.2007  12:01    <KANSIO>       examples
28.12.2007  12:01    <KANSIO>       images
09.01.2007  14:06            18 937 license.rtf
05.02.2007  15:53            13 556 license.txt
05.02.2007  16:40             1 085 QuickStart.html
05.02.2007  16:38             1 367 README.html
15.11.2007  10:16         4 571 136 _chilkat.pyd
               7 tiedosto(a)      5 264 937 tavua
               4 kansio(ta)  22 655 668 224 tavua vapaana

Pekka Karjalainen [28.12.2007 22:22:25]

#

Mokkulan oppaan kirjoittaja on ajatellut jotain kieltä, jossa on require-sana käytössä Pythonin import-sanan vastineena. Pythonissa on vain import, ja se ymmärtää hakea tuon chilkat.py-tiedoston, jos se tietää hakemiston, mistä katsoa.

Moduulien hakemisesta on lisää tietoa (enkuksi) Pythonin virallsiessa tutoriaalissa.

http://docs.python.org/tut/node8.html

Burton [28.12.2007 22:28:44]

#

Virhe:

Traceback (most recent call last):
  File "C:\...\upload.py", line 4, in <module>
    import chilkat
ImportError: No module named chilkat

Koodi:

__path__ = ["c:\...\chilkatPython"] # Ei tietenkään pisteitä oikeassa.

import sys
import chilkat

...ja tuo on aivan oikea kansio.

EDIT:
Asetin upload.py-tiedoston tuonne "chilkatPython"-kansioon, missä moduulin tiedostot sijaitsevat ja nyt homma toimii. Tosin haluaisin käyttää moduulia sen kansion ulkopuoleltakin...

Pekka Karjalainen [28.12.2007 22:32:28]

#

Windowsissa polut pitää laittaa niin, että kenoviiva tuplataan.

\-merkki tarkoittaa, että seuraava merkki on erikoismerkki
\\-pari tarkoittaa yhtä \-viivaa lopullisessa merkkijonossa

Tästä riesasta pääsee, jos käyttää os.path-moduulia tai vastaavaa, mutta ei tämän takia kannata opetella. Pistät vain kaksi \-merkkiä joka kohtaan.

Kun kerrot sen polun oikein, niin Python löytää kyllä mokkulan. Voin huomenna antaa esimerkin, jos ei vieläkään toimi, mutta nyt illalla ei jaksa. Sori.

Pekka Karjalainen [29.12.2007 11:14:19]

#

OK, kokeilin nyt omalla koneella. On kaksi helppoa tapaa, jotka alla. Tuo ohjeen neuvoma tapa liittyy moduuleista koostuvien pakettien (package) tekoon, josta on ohjetta sitten tuolla antamassani linkissä.

Tapa yksi:

# tämä tulee ennen importtia
polku = "C:\\...\\chilkat" # tähän se koko polku
from sys import path
path.append(polku) # lisätään moduulien hakupolkuun uusi paikka

import chilkat # nyt oikea polku on mukana, joten löytyy

Tämä on vähän purkkaviritystä, joten parempi käyttää tähän tarkoitukseen määriteltyä ympäristömuuttujaa PYTHONPATH.

Windows XP:ssä ympäristömuuttujia voi asettaa pysyvästi seuraavalla loogisella tavalla. (sarkasmia? ei koskaan)

Käynnistä valikosta klikkaat oikealla Omaa tietokonetta.
Valitse Ominaisuudet.
Sitten Lisäasetukset -> Ympäristömuuttujat

Dialogissa on käyttäjäkohtaiset ja yleiset muuttujat. Jos on muita käyttäjiä ja haluat asettaa polun vain omalle tunnuksellesi, valitse ylempi, muuten alempi Uusi-nappi.

Sitten laitat tulevaan dialogiin:

Muuttujan nimi: PYTHONPATH
Muuttujan arvo: c:\...\chilkat

Ja sitten OK OK OK, niin tieto on pysyvästi tallessa.

Windowsille itselleen ei sentään tarvitse tuplata niitä kenoviivoja. Tämän jälkeet Python hakee kyseisestä hakemistosta muiden lisäksi importattavia tiedostoja.

Toivottavasti tämä nyt toimii. On se ohje tuolla linkissäkin näin, ja testasin kyllä omalla koneella.

Vastaus

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

Tietoa sivustosta