代码之家  ›  专栏  ›  技术社区  ›  user32882

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

  •  0
  • user32882  · 技术社区  · 3 年前

    这个 docs 对于 sys.path 说明以下内容:

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

    所以我的理解是 PYTHONPATH 是一个 环境变量 。可以使用以下命令在Powershell中打印出环境变量:

    PS> echo $ENV:VARIABLENAME
    

    然而,当我这样做的时候 $ENV:PYTHONPATH 我没有输出。如果我尝试访问 蟒蛇路径 从python终端,我得到一个 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'
    

    然而,我知道 蟒蛇路径 已定义 在某处 ,因为它的值在我使用时确实会显示 搜索路径 :

    >>> 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']
    

    如果 蟒蛇路径 确实是一个环境变量,为什么我不能使用Powershell或 os 在我的Python解释器中?

    1 回复  |  直到 3 年前
        1
  •  4
  •   kurisukun    3 年前

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

    但是,如果出于任何原因,您需要一些不想安装的自定义Python库,您可以 export PYTHONPATH=/path/to/my/modules/ 要添加 /path/to/my/modules/ son Python将知道在哪里可以找到这些自定义模块。

    这一次,如果您再次打印sys.path,它将向您显示新添加的模块。

    推荐文章