`PYTHONPATH`真的是一个环境变量吗?

问题描述 投票:0回答:1

sys.path

docs
声明如下:

指定模块搜索路径的字符串列表。从环境变量 PYTHONPATH 初始化,加上依赖于安装的默认值。

所以我在这里的理解是

PYTHONPATH
是一个环境变量。可以使用以下命令在 Powershell 中打印环境变量:

PS> echo $ENV:VARIABLENAME

但是当我这样做时

$ENV:PYTHONPATH
我没有得到任何输出。如果我尝试从 python 终端访问
PYTHONPATH
,我会得到
KeyError
:

>>> import os
>>> os.environ["PYTHONPATH"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python310\lib\os.py", line 679, in __getitem__
    raise KeyError(key) from None
KeyError: 'PYTHONPATH'

但是,我知道

PYTHONPATH
被定义在某处,因为当我使用
sys.path
时它的值确实出现了:

>>> import sys
>>> sys.path
['', 'C:\\Python310\\python310.zip', 'C:\\Python310\\DLLs', 'C:\\Python310\\lib', 'C:\\Python310', 'C:\\Users\\aa\\AppData\\Roaming\\Python\\Python310\\site-packages', 'C:\\Python310\\lib\\site-packages', 'C:\\Python310\\lib\\site-packages\\scons-4.4.0-py3.10.egg', 'C:\\Python310\\lib\\site-packages\\colorama-0.3.2-py3.10.egg', 'C:\\Python310\\lib\\site-packages\\win32', 'C:\\Python310\\lib\\site-packages\\win32\\lib', 'C:\\Python310\\lib\\site-packages\\Pythonwin']

如果

PYTHONPATH
确实是一个环境变量,为什么我不能在 Python 解释器中使用 Powershell 或
os
访问它?

python environment-variables pythonpath
1个回答
7
投票

变量 PYTHONPATH 是一个环境变量,您可以设置它来添加 python 将在其中查找模块和包的其他目录。默认情况下未设置此变量,Python 也不需要它来工作,因为它已经知道在哪里可以找到其标准库 (sys.path)。

但是,如果出于任何原因您需要一些不想安装的自定义 Python 库,您可以

export PYTHONPATH=/path/to/my/modules/
在 Python 上添加
/path/to/my/modules/
然后就知道在哪里可以找到这些自定义模块。

这次,如果你再次打印sys.path,它会显示新添加的模块。

© www.soinside.com 2019 - 2024. All rights reserved.