Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python和环境变量_Python_Bash_Python 2.7_Unix - Fatal编程技术网

Python和环境变量

Python和环境变量,python,bash,python-2.7,unix,Python,Bash,Python 2.7,Unix,在UbuntuTerminal I中执行以下命令会得到预期的结果: $export number=3 echo $number ###3 $python >>>import os >>>print(os.environ['number']) ###prints 3 而: $python -c 'import os;print(os.environ['number'])' $python-c'导入操作系统;打印(os.environ['number'])”

在UbuntuTerminal I中执行以下命令会得到预期的结果:

$export number=3
echo $number ###3
$python
>>>import os
>>>print(os.environ['number']) ###prints 3
而: $python -c 'import os;print(os.environ['number'])' $python-c'导入操作系统;打印(os.environ['number'])”

结果:name错误:未定义名称“number”


为什么??是否可以使用python-c获取环境变量?

确保将单引号更改为双引号(至少是外部引号),以避免出现该问题

python-c“导入操作系统;打印(os.environ['number'])”
3

很好用,因为我的单引号在双引号内

编辑:您的示例的问题并不是您在Python中使用单引号,而是您的shell在解释这些单引号

从bash手册页:

单引号不能出现在单引号之间,即使前面有反斜杠


python-c’导入操作系统;print(os.environ[“number”])谢谢,但是这个问题的根源是什么?我认为双引号和单引号在python中可以互换使用?对于字符串是的(“mystring”与“mystring”相同),但在您的例子中,计算机解析您的四个单引号,并认为第一个字符串在第二个单引号上结束,而您希望它在第四个单引号上结束。这就是为什么必须使用单引号和双引号的原因我已经更新了答案,使其更有意义,但它实际上与Python无关,只是引用规则。你可以多读一点(也可以理解为什么这是一个坏主意)