Как использовать экспорт с Python на Linux

Еще одной причиной большего исполняемого размера могли быть отложенные вычисления и нестрогий. Компилятор не может выяснить во время компиляции, когда определенные выражения оценены, таким образом, некоторое время выполнения наполнено в исполняемый файл для обработки этого (для призыва оценки так называемого преобразователи ). Что касается производительности, лень может быть и хорошей и плохой. С одной стороны это допускает дополнительную потенциальную оптимизацию, с другой стороны, размер кода может быть больше, и программисты, более вероятно, будут принимать плохие решения, например, видеть Haskell foldl по сравнению с foldr по сравнению с foldl' по сравнению с foldr' .

56
задан Kevin Campion 1 October 2009 в 19:39
поделиться

4 ответа

Вы действительно хотите сделать

import os
os.environ["MY_DATA"] = "my_export"
72
ответ дан 26 November 2019 в 17:04
поделиться

Не все так просто:

python -c "import os; os.putenv('MY_DATA','1233')"
$ echo $MY_DATA # <- empty

Но:

python -c "import os; os.putenv('MY_DATA','123'); os.system('bash')"
$ echo $MY_DATA #<- 123
7
ответ дан 26 November 2019 в 17:04
поделиться

экспорт - это команда, которую вы передать непосредственно оболочке (например, bash ), чтобы указать ей добавить или изменить одну из своих переменных среды. Вы не можете изменить среду своей оболочки из дочернего процесса (такого как Python), это просто невозможно.

Вот что происходит с вами, попробуйте os.system ('export MY_DATA = "my_export"') ...

/bin/bash process, command `python yourscript.py` forks python subprocess
 |_
   /usr/bin/python process, command `os.system()` forks /bin/sh subprocess
    |_
      /bin/sh process, command `export ...` changes local environment

Когда самый нижний подпроцесс / bin / sh завершит выполнение вашего экспорта ... команда, затем она отбрасывается вместе со средой, которую вы только что изменили.

79
ответ дан 26 November 2019 в 17:04
поделиться

Вместо этого вы можете попробовать os.environ ["MY_DATA"].

1
ответ дан 26 November 2019 в 17:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: