Python, c_parser.py ?

c_parser ?

Asensin tuon c_parser.py, ja sitä ennen myös

http://www.dabeaz.com/ply/

sekä

http://code.google.com/p/pycparser/

mutta: yritettäessä komentaa (komentoriviltä)

python c_parser.py koodia.c

tulee virheilmoitus:

Traceback (most recent call last):
File "c_parser.py", line 13, in
from . import c_ast
ValueError: Attempted relative import in non-package


sama tulee myös komennolla:

python c_parser.py

eli c-kielisen tiedostonimen poisjättö ei muuta asiaa.

saako tuon jotenkin korjattua ?

Python on versiota 3.2.3 (windows XP; 32-bit)

3

170

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • hooposs

      Mielenkiintoista. En tiennyt koko relative importtien olemassaolosta kun en ole moisia tähän asti tarvinnut :). Elikkä ilmeisesti main moduulit (suorita vs importtaa moduuli) ja relative importit eivät tällä hetkellä sovi hyvin yhteen.

      Jotain asiaan liittyen tai vierestä lipoen
      http://www.python.org/dev/peps/pep-0328/#rationale-for-relative-imports
      http://www.python.org/dev/peps/pep-0338/#import-statements-and-the-main-module
      http://python.org/dev/peps/pep-0366/

      Toimivatko esimerkit examples kansiossa kuitenkin? eli jos tuo on tosiaan ongelma vain yrittäessä ajaa moduulia joka tekee relative importit niin ei sillä pitäisi olla mitään käytännön merkitystä

    • c_parser

      "niin ei sillä pitäisi olla mitään käytännön merkitystä"

      no onhan sillä nyt erittäin vakava merkitys !

      Kun siis tuon seurauksena en pysty ollenkaan tekemään haluaamaani asiaa.

      Tuo c_parser.py kun on tuon seurauksena täysin käyttökelvoton.

      En ainakaan keksi mitään keinoa edes ajaa manuaalisesti tuota c_parser.py

      ja kun tarkoitus oli luoda DLL joka ajaisi sekä python -tulkin että tuon c_parser.py ko. python -tulkissa ja mahdollistaisi tuon DLL:n kutsumisen ihan millä kielellä tehdystä pääohjelmasta tahansa (siis niistä kielistä, joita voi kääntää EXE:ksi)

      • hooposss

        Tuo c_parser.py sisältää luokan CParser eikä mitään oleellista suoritettavaa. Voit käyttää ko. luokkaa ilman mitään ongelmia kunhan olet asentanut sen ja ply:n oikein (python setup.py install). Tällöin python löytää sen ihan oikein komennolla import pycparser. Examples kansiossa olevat esimerkit toimivat omalla koneellani ihan hyvin tosin (eri python mutta ei pitäisi olla merkitystä. Sama virhe tulee jos koitan suorittaa ko. tiedoston)

        Ilmankin oikeaoppista asennusta sen saa varmasti toimimaan, kunhan huolehdit että pycparser paketti löytyy jotta import sen osaa hakea.
        Vaihtoehdot:
        a) asennat sen oikeaoppisesti site-packages kansioon
        b) Luot sille .pth tiedoston site-package kansioon, joka kertoo mistä hakea (http://docs.python.org/library/site.html)
        c) määrittelet polun PYTHONPATH ympäristömuuttujaan
        d) muokkaat sys.path ennen importtia ja lisäät polun sinne
        (muitakin tapoja voi olla mutta ei tule mieleen just nyt)

        "En ainakaan keksi mitään keinoa edes ajaa manuaalisesti tuota c_parser.py"
        Ei sitä ole tarkoitettukaan. Ongelma ilmenee vain ja ainoastaan jos koitat suorittaa ko. tiedoston. Tiedosto on osa pakettia pycparser (__init__py olemassaolo kertoo tämän). En tiedä miksi tekijä on päättänyt käyttää suhteellisia importteja josta johtuen tuo ongelma nyt ilmenee.
        Jotain paketeista: http://docs.python.org/tutorial/modules.html#packages

        Jos mikään muu ei auta voit kiertää ongelman muuttamalla importit tavallisiksi, kunhan huolehdit että ne löytyvät importilla. Tätä joudut sitten mahdollisesti ylläpitämään itse jatkossakin :)


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. PropsApp Koodi

      Haluatko ansaita ja kilpailla fiksusti samalla kun seuraat urheilua? Props tekee sen mahdolliseksi. Sovelluksessa pääset
      2
      3498
    2. Persut yrittävät epätoivon vimmalla

      kiertää häirintä asian https://www.iltalehti.fi/politiikka/a/5389f072-60d9-4ef8-aa7b-c11f0eda66cf jonka muut puolueet a
      Maailman menoa
      96
      3324
    3. "Skandaali muhii SDP:ssä" - "pelon ilmapiiri vallitsee"

      Puolueen johto on vähintään vastuussa ilmapiiristä, jossa häirinnän uhrit eivät ole saaneet ääntään kuuluviin. Vyyhdin
      Maailman menoa
      52
      2818
    4. IL: "Kyykyttämistä, alistamista, painostamista, huutamista ja tiuskimista SDP:n

      eduskuntaryhmässä." Häirintäkohu puolueen ympärillä paisuu. Iltalehden haastattelemien SDP-lähteiden mukaan eduskunta-
      Maailman menoa
      55
      2621
    5. Riikka runnoo: konkursseja eniten 30 vuoteen

      Vuonna 2025 Suomessa haettiin konkurssiin yhteensä 3 906 yritystä. Konkurssiluku oli suurin sitten vuoden 1996.
      Maailman menoa
      92
      2445
    6. Taas nuoren kuolema

      Vasunmäentiellä paha onnettomuus. Nuori nainen menehtyi. Niiin sydäntä riipaisevaa 😭
      Lapua
      38
      1634
    7. Jari Sillanpää isossa leikkauksessa - Paljastaa, mitä uralle tapahtuu!

      Palaako Siltsu keikoille? Artisti, ex-tangokuningas Jari Sillanpää on ollut lonkkaleikkauksessa ja kotiinpaluu on edessä
      Suomalaiset julkkikset
      22
      1279
    8. Kuinka paljon teillä

      on ikäeroa?
      Ikävä
      96
      1238
    9. Raamatun kanta homoseksuaaliseen käytökseen on selvä

      On oma mielipiteesi mikä tahansa on hyvä muistaa, mikä on Jumalan mielipide. Edelliset ketjut ovat tulleet täyteen joten
      Luterilaisuus
      340
      1108
    10. Hämmentävä muutos tv:ssä: Roope Salminen OUT, Sointu Borg IN!

      Roope OUT, Sointu IN! Mitä tykkäät tästä muutoksesta? Suositun Myyrä-seikkailusarjan alusta asti juontohommissa on oll
      Suomalaiset julkkikset
      16
      1003
    Aihe