Python中的PYTHONPATH环境变量、手动添加import导入搜索路径

本文介绍如何在Linux环境下配置Python搜索路径,包括使用sys.path.append()临时修改、通过环境变量PYTHONPATH永久生效以及创建.pth文件实现自定义路径的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Windows与Linux都通用,只是路径写法,修改环境变量的方法不同而已。

Python的搜索路径查看

可以通过sys.path来查看当前Python在导入包时候的搜索路径。

Python 3.7.0 (default, Jul 13 2018, 11:20:23)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', 
'/usr/local/lib/python3.7/lib-dynload', '/root/.local/lib/python3.7/site-packages', 
'/usr/local/lib/python3.7/site-packages']

目录的多元化

博主在编译安装python时,为了归类方便查找,将python安装目录定为:/usr/local/python3/,也就是后续依赖包的安装默认路径为/usr/local/python3/lib/python3.7/site-packages/

这意味着和python默认的包路径:/usr/local/lib/python3.7/site-packages,不一样

自主添加path方案有三:

sys.path.append()  # 缺点:需要执行代码,且只为内存临时修改,程序退出后清空变量

②在系统环境中新增PYTHONPATH变量,指向自己想要的path搜索路径。缺点:修改了环境变量,对复杂环境需求易造成冲突,博主的环境需要完整保留python2和python3,并相互独立运行。

③在site-packages下建立一个name.pth文件,并添加需要自定义包含引入的路径。# 完美

博主在/usr/local/lib/python3.7/site-packages路径下新建python3_path.pth文件,内容如下:

[root@localhost site-packages]# cat py3_path.pth
/usr/local/python3/lib/python3.7/site-packages

再次验证Python搜索路径已经存在,且import相关包也不会报错。


参考资料:

https://www.cnblogs.com/geeklove01/p/7912435.html

https://docs.python.org/3/install/index.html#modifying-python-s-search-path

在Linux中,如果你安装了Python库但import时找不到,可能是由于Python搜索路径(sys.path)没有包含到库所在的目录。以下是解决这个问题的步骤: 1. **检查已安装位置**: - 打开终端并运行 `python -c "import site; print(site.getsitepackages())"`,这将显示Python的默认搜索路径。 2. **手动添加路径**: - 如果库位于自定义的位置,你可以通过编辑`~/.bashrc`、`~/.bash_profile` 或者`~/.zshrc`(取决于你的shell)文件,在其中添加一条类似这样的行: ``` export PYTHONPATH=$PYTHONPATH:/path/to/your/library ``` 然后运行 `source ~/.bashrc` (or对应文件) 使更改生效。 3. **全局设置**: - 如果你想让所有用户都能访问这个库,可以在系统级别的配置文件(如 `/etc/profile.d/python.sh`)中添加路径,然后重启shell或运行 `sudo update-alternatives --config python` 来应用新设置。 4. **包管理器**: - 如果库是通过包管理器(如pip、apt-get等)安装的,确保该路径已经包含在`pip`或`distutils`的搜索路径中。比如,对于pip,可以使用 `pip config set global.index-url https://pypi.org/simple/ && pip install --upgrade pip` 更新pip,并确保`site-packages`目录在`pip.conf`或`pipx.ini`的`global.index-url`中指定。 5. **模块路径查找**: - 检查`sitecustomize.py` 文件,有时候某些库会在这里自动修改`sys.path`。 如果以上步骤仍然无法解决问题,确认库是否安装成功以及是否有权限访问。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值