PYTHONPATH
在Python中,PYTHONPATH是一个环境变量,用于指定Python解释器在查找模块和包时应该搜索的目录路径。当我们运行Python程序时,解释器会通过搜索PYTHONPATH中指定的路径来查找需要导入的模块和包。
PYTHONPATH环境变量的设置方式可以是以下两种:
通过命令行参数设置PYTHONPATH的值,例如:
python -m my_module --path /usr/local/lib/python3.7/site-packages
将PYTHONPATH设置在操作系统的环境变量中,例如在Linux系统中可以通过以下命令设置:
export PYTHONPATH=/usr/local/lib/python3.7/site-packages
需要注意的是,PYTHONPATH指定的路径应该是包含Python模块和包的根目录,而不是具体的模块或包的文件路径。
使用PYTHONPATH可以方便地管理Python模块和包的搜索路径,使得我们可以方便地导入自己的模块和包,并且可以避免因为模块和包的搜索路径问题导致的导入错误。
PYTHONPATH 是 python查找模块和包的路径,每导入一个模块,python解释器将依次在PYTHONPATH 下寻找
可以通过 sys.path 来查看 PYTHONPATH 的具体内容
['',
'/opt/conda/envs/xxenv/lib/python3.7',
'/opt/conda/envs/xxenv/lib/python3.7/lib-dynload',
'/opt/conda/envs/xxenv/lib/python3.7/site-packages']
接下来以安装 ppdet 的安装配置来举例说明,先将内容git下来:
git clone https://github.com/PaddlePaddle/PaddleDetection
此时,导入ppdet,会报 ModuleNotFoundError
之后,将该路径 PaddleDetection 添加到 PYTHONPATH 中
# 在当前终端临时添加环境变量, 每开一个新终端要重新执行一次
export PYTHONPATH=$PYTHONPATH:/xxxx/PaddleDetection
也可以这样持续添加,之后刷新一下环境变量即可
echo "export PYTHONPATH=$PYTHONPATH:/xxxx/PaddleDetection" >> ~/.bashrc
source ~/.bashrc
之后再打印一下 sys.path 看看:
['',
'/xxxx/PaddleDetection',
'/opt/conda/envs/xxenv/lib/python3.7',
'/opt/conda/envs/xxenv/lib/python3.7/lib-dynload',
'/opt/conda/envs/xxenv/lib/python3.7/site-packages']
接下来,导入 ppdet
>>> import ppdet
导入成功