use*_*882 2 python environment-variables pythonpath
文档声明如下sys.path:
指定模块搜索路径的字符串列表。从环境变量 PYTHONPATH 以及依赖于安装的默认值初始化。
所以我在这里的理解是这PYTHONPATH是一个环境变量。可以使用以下命令在Powershell中打印出环境变量:
PS> echo $ENV:VARIABLENAME
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,$ENV:PYTHONPATH我没有得到任何输出。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'
Run Code Online (Sandbox Code Playgroud)
但是,我知道在某处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']
Run Code Online (Sandbox Code Playgroud)
如果PYTHONPATH确实是一个环境变量,为什么我无法使用 Powershell 或os在 Python 解释器中访问它?
小智 5
变量 PYTHONPATH 是一个环境变量,您可以设置它来添加 python 将在其中查找模块和包的其他目录。默认情况下未设置此变量,Python 也不需要此变量来工作,因为它已经知道在哪里可以找到其标准库 (sys.path)。
但是,如果出于某种原因您需要一些不想安装的自定义 Python 库,您可以export PYTHONPATH=/path/to/my/modules/添加/path/to/my/modules/子 Python,然后 Python 将知道在哪里可以找到这些自定义模块。
这次,如果您再次打印 sys.path,它将显示新添加的模块。
| 归档时间: |
|
| 查看次数: |
7648 次 |
| 最近记录: |