... <看更多>
「python os environ」的推薦目錄:
- 關於python os environ 在 Re: [問題] os.environ 和os.putenv - 看板Python - 批踢踢實業坊 的評價
- 關於python os environ 在 How to access environment variable values - Stack Overflow 的評價
- 關於python os environ 在 Python script to list all environment variables, and split the ... 的評價
- 關於python os environ 在 Reading Environment Variables in Python - YouTube 的評價
- 關於python os environ 在 Why can't my Python script find a custom defined environment ... 的評價
- 關於python os environ 在 Using PYTHONPATH — Functional MRI methods 的評價
python os environ 在 Python script to list all environment variables, and split the ... 的推薦與評價
lists environment variables, and splits elements in path variable """. import os. for k, v in sorted(os.environ.items()): print(k+':', v). print('\n'). ... <看更多>
python os environ 在 Why can't my Python script find a custom defined environment ... 的推薦與評價
when I print os.environ the environment variables and their correct values are listed as I defined them. so it seems that they are there. – mark ... ... <看更多>
相關內容
python os environ 在 Using PYTHONPATH — Functional MRI methods 的推薦與評價
Returning to the example module and script in Where does Python look for modules?: ... setting of environment variables, using the os.environ dictionary. ... <看更多>
python os environ 在 Re: [問題] os.environ 和os.putenv - 看板Python - 批踢踢實業坊 的推薦與評價
※ 引述《obelisk0114 (追風箏的孩子)》之銘言:
: 一.
: 假如只是要獲得某個環境的絕對路徑,例如: AppData
: os.getenv('LOCALAPPDATA') 和 os.environ['LOCALAPPDATA']
: 完全一樣嗎 ?
getenv 在 key 不存在時會回傳 default (預設是 None)
所以其實是和 os.environ.get() 一樣
: 二.
: 若作業系統支援 os.putenv()
: 使用 os.environ 則會自動呼叫 os.putenv 來改變環境變量
: 若直接使用 os.putenv 而不透過 os.environ 時, 則不會改變 os.environ 裡的變量
: 但是 python 不是不能直接操作作業系統嗎,
: 所以結束 python 之後環境變量還是一樣
: 這樣兩者有何差別 ?
首先, Python「可以」操作作業系統
不過這個先不管
差別在於, 如果你在 putenv 後開啟一個 subprocess
(包含用 os.system, subprocess 等等)
這個子程序會看到 os.putenv 設定的變數
但程序本身並不會看到
另一方面, 直接修改 environ 則是可以被程序本身使用, 子程序也會看到
: 三.
: 作業系統不支援 os.putenv() 時,
: os.environ 會創造一個新的程序來使用修改過的環境變量
: 實際用途是甚麼 ?
沒這種事, 你讀錯文件了
文件說的是, 如果作業系統不支援 putenv
則子程序會使用 os.environ 的一個 copy 作為它的環境
如果有 putenv, 則修改 os.environ 會直接觸發 putenv
這種情況下子程序就不需要這個 mapping, 直接和作業系統要環境變數即可
: 四.
: 有些作業系統, 像是 FreeBSD 和 Mac OS X, 設定 os.environ 會導致記憶體洩漏
: 程式終止或是結束 python 可以重新取回該漏失的記憶體嗎 ?
可以
: 直接使用 os.putenv() 也會造成記憶體洩漏嗎 ?
會
: 有可能重新用另一段程式碼來使用該漏失的記憶體嗎 ?
不行
---
其實除非你要用到非常接近 C API 的功能, 只要記住一句話就好了
『永遠使用 os.environ, 假裝其他的都不存在』
你研究那麼多其實沒什麼用
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.19.12
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1463064046.A.4CC.html
... <看更多>