Skoči na vsebino

environment variables v WSL


Priporočeni prispevki

V neki python skripti moram prebrat iz os.environ.

 

V winsih normalno nastavim in potem preberem s pythonom, ko pa poženem windowsov ubuntu, se moje težave prično.

 

1. ubuntu od winsow ne dobi vseh environment variablesov

 

2. v ubuntuju ročno nastavim nove spremenljivke po receptu. stvar sicer deluje v smislu, da jih lahko preberem v ukazni vrstici z "echo $[ime_spremenljivke]", python jih pa v os.environ ne dobi.

 

Vesel bom vsakršnega predloga.

Povezava do prispevka
  • 1 mesec kasneje...

Če res ni mus, da bereš spremenjivke iz enviromenta, lahko uporabiš konfiguracijske datoteke v yaml formatu/notaciji. (lahk tud v xml ali json formatu, če ti je ljubše) Vpišeš kar češ v fajl in bo bralo v vseh OS-ih in to iz istega mesta mape (v obeh Win in WSL2). 

WSL2 enviroment in Windows env. sta  čisto ločena in bo potrebno v obeh nastaviti env variable. Kakor vem, ni možno v Win nastavit env variable in brati v WSL2 in vice versa.

uredilo bitje Car
Povezava do prispevka
drevored reče Dne, 2. 8. 2020 at 12:56:

 

zakaj moras to narediti? iz tvojega opisa deluje bolj, kot da si si ti tko zamislil in nisi iskal drugih (boljsih) nacinov

Skripta teče v nekem Docker kontejnerju, na katerega nimam direktnega vpliva. Na WSLju sem v času razvoja skušal simulirat okolje, v katerem teče skripta, dokler je bilo to še smiselno, da mi ni blo treba met posebej verzije za v kontejner in za lokalno.

Povezava do prispevka

pol pa tko povej

jzt si dam ponavad dobre defaulte ze v python, ce slucajno ni env variable. tle je sicer nevarno da pozabis v produkciji nastavit env variable in app vseeno dela. tko da pomembnih env variabel ne smes defaultat.

 

ce je neka kratka zadeva zazenem stvar z: MOJA_VARIABLA=vrednost python skripta.py

 

ce je pa tega dost, pa dam v source control datoteko z imenom env_vars in notr specificiram variable. pol kot developer lahk direkt sourcas file in zazenes zadevo. v dostih primerih pa mors prilagodit svojemu okolju. tko da lepo skopiram fajl in si ga lokalno spremenim in pol sourcam. tega ponavad ne dajem  source control.

 

ker sem presaltal pred casom na fish valda mors dat "set -x variable value" tko da ni vec kompatibilno z bashem mam pol se s tem probleme sam jebiga.

 

ce je malo bolj resen python projekt mam datoteko conf.py, kjer je konfiguracija noter (lahko tudi prebere iz os.environ). pol ce kot developer hocem spremenit konfiguracijo lepo nardim devconf.py in "from conf import *" pol pa overridam tist kar hocem. na koncu sam se pythonu nekak poves da naj uporabi devconf.py namest conf.py. tak pristop recimo uporablja django pa tud v lasten projekt ga ni lih tezko ufurat. enkrat se spravis zraven pol pa itak sam copy pastas v druge prjekte.

Povezava do prispevka
The Mothership reče pred 21 urami:

Skripta teče v nekem Docker kontejnerju, na katerega nimam direktnega vpliva. Na WSLju sem v času razvoja skušal simulirat okolje, v katerem teče skripta, dokler je bilo to še smiselno, da mi ni blo treba met posebej verzije za v kontejner in za lokalno.

 

če maš vsaj vpliv na to kako se kontejner zalaufa, lahko daš env variable v docker-compose oz. v docker run komando

Povezava do prispevka

Pridruži se debati

Lahko objaviš prispevek in se registriraš kasneje. Ako imaš račun, se vpiši za objavo s svojim računom.

Gost
Odgovori na temo...

×   Prilepljena vsebina je formatirana.   Odstrani formatiranje pisave

  Only 75 emoji are allowed.

×   Tvoja povezava je bila samodejno vpeta..   Namesto tega prikaži kot povezavo

×   Tvoja prejšnja vsebina je bila obnovljena.   Počisti urejevalnik

×   You cannot paste images directly. Upload or insert images from URL.

  • Nedavno brska   0 članov

    • Nihče od registriranih uporabnikov ne pregleduje strani.
×
×
  • Ustvari novo...