![](/img/trans.png)
[英]python os.getenv() don't see any of my custom variables from Jupyter notebook (os x el capitan)
[英]python - os.getenv and os.environ don't see environment variables of my bash shell
我在 ubuntu 13.04, bash, python2.7.4
解釋器看不到我設置的變量。
這是一個例子:
$ echo $A
5
$ python -c 'import os; print os.getenv( "A" )'
None
$ python -c 'import os; print os.environ[ "A" ]'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
raise KeyError(key)
KeyError: 'A'
但是使用PATH
變量一切正常:
$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
$ python -c 'import os; print os.getenv("PATH")'
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
它注意到PATH
的變化:
$ PATH="/home/alex/tests/:$PATH"
$ echo $PATH
/home/alex/tests/:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
$ python -c 'import os; print os.getenv("PATH")'
/home/alex/tests/:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
有什么問題嗎?
PS 使用$PYTHONPATH
時出現問題:
$ python -c 'import os; print os.getenv("PYTHONPATH")'
None
添加,因為我沒有看到具有我所遇到的確切問題的答案。 如果您有多個“外殼”,例如 BASH 和 Z-Shell,請確保您已在正確的 shell 中導出環境,並且這對 python 可用。
如果您使用 VSCode 並將默認值 shell 設置為 Z shell,那么可以理解,如果 .zshrc 中不存在.bashrc
中的變量,則.zshrc
解釋器將看不到它們。 解決方案是在兩個 shell 中export
變量或將默認值 shell 更改為具有必要變量的那個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.