Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Could not import

[es] :: Python :: Could not import

[ Pregleda: 2706 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mr.marvin

Član broj: 137276
Poruke: 111
213.149.105.*



Profil

icon Could not import07.11.2007. u 12:34 - pre 156 meseci
Imam paket, recimo "pkg", i u njemu module mod1 i mod2. Mod1 ima clasu koja se koristi u mod2 i obratno. Python prijavljuje gresku ako pozivam u mod1:

import mod2

...zato sto u mod2 imam liniju koja glasi "from mod1 import ...". Izgleda da sam napravio petlju u lodovanju modula.

Zanima me kako ovo da rijesim? Kako da sve sto mi treba stavim u globalni namespace, tako da je spremno za upotrebu? I kako mogu da izbjegnem da u svakom modulu u pkg pisem "from pkg.module1 import to_i_to"?
 
Odgovor na temu

StefanJer91
Stefan Jeremic
Beograd

Član broj: 121923
Poruke: 160
*.kalik.info.



Profil

icon Re: Could not import07.11.2007. u 14:16 - pre 156 meseci
Nisam bas najbolje razumeo tvoj problem, ali ne vidim sto toliko komlikujes. Stavi stvari za importovanje sve u jedan module pa importuj iz ova 2. Sto se drugog problema tice, ako sam razumeo trebi treba from pkg.module1 import * ( * znaci da importujes sve stvari iz tog modula)
The earth teaches us more about ourselves than all the books. Because it resists us. Man discovers himself when he measures himself against the obstacle.
 
Odgovor na temu

mr.marvin

Član broj: 137276
Poruke: 111
195.66.191.*



Profil

icon Re: Could not import07.11.2007. u 18:53 - pre 156 meseci
Kako program raste, tako se stvari kompikuju, a ja pokusavam da ih drzim pod kontrolom. Znam za "import *", ali medjusobno importovanje izmedju dva modula dovodi do greske (il sam je krivo shvatio).

Ne odgovara mi da sve stavim u jednan modul, pa odatle da importujem.

Kako da neke klase, vrijednosti itd. postavim kao "public", odnosno da stalno budu spremne za upotrebu? Da li je dovoljno da u __init__.py postavim linije sa kodom "from module1 import class1 as class1" ili ima neka druga praksa?
 
Odgovor na temu

StefanJer91
Stefan Jeremic
Beograd

Član broj: 121923
Poruke: 160
212.62.51.*



Profil

icon Re: Could not import07.11.2007. u 20:46 - pre 156 meseci
Ja na zalost ne znam, nikada nisam to radio jer nisam imao potrebu sa tim. Moj savet ti je da uzmes neciji tudji projekat i pogledas kako je to uradjeno. Btw, jesi li gledao python dokumentaciju? Mozda ovde ima ono sto ti treba http://www.python.org/doc/current/dist/dist.html
The earth teaches us more about ourselves than all the books. Because it resists us. Man discovers himself when he measures himself against the obstacle.
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.siminn.is.

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Could not import08.11.2007. u 13:16 - pre 156 meseci
Citat:
mr.marvin: Kako program raste, tako se stvari kompikuju, a ja pokusavam da ih drzim pod kontrolom. Znam za "import *", ali medjusobno importovanje izmedju dva modula dovodi do greske (il sam je krivo shvatio).


Ukoliko klasama u jednom modulu pristupas u drugom modulu i obratno, odnosno ukoliko imas upravo takav problem (potrebu za medjusobnim importovanjem modula) verovatno je potrebno da izvrsis reorganizaciju svojih modula, jer se ocigledno (nepotrebno) preklapaju.

Citat:

Kako da neke klase, vrijednosti itd. postavim kao "public", odnosno da stalno budu spremne za upotrebu? Da li je dovoljno da u __init__.py postavim linije sa kodom "from module1 import class1 as class1" ili ima neka druga praksa?


Koncept public i private metoda klasa i varijabli je u Python jeziku resen kroz imena samih metoda i varijabli. Ukoliko ime metoda ili varijable u okviru klase pocinje sa "__" (double underscore) Python im ne dozvoljava pristup van same klase.

Vise o tome ovde
Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

mr.marvin

Član broj: 137276
Poruke: 111
195.66.191.*



Profil

icon Re: Could not import16.11.2007. u 14:01 - pre 156 meseci
Najpametinije je bilo sve module malo reorganizovati, kao sto si preporucio, i sad je sve ok. Medjutim, nisam mislio na public/private osobine unitar klase, vec na same module unutar projekta, ali i to se polako sredjuje.
 
Odgovor na temu

[es] :: Python :: Could not import

[ Pregleda: 2706 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.