『Python学习笔记』Python运行设置PYTHONPATH环境变量!

Python运行设置PYTHONPATH环境变量!

一. Python运行设置PYTHONPATH环境变量!

export PYTHONPATH=$(pwd) 是一个命令,用于将当前目录添加到 Python 的模块搜索路径中。这里是详细的解释和原因:

1. 解释

  • export PYTHONPATH=$(pwd)
    • export PYTHONPATH=:这部分设置一个名为 PYTHONPATH 的环境变量。PYTHONPATH 是一个特殊的环境变量,Python 会在这个路径中查找模块。
    • $(pwd):这个命令会返回当前目录的路径。例如,如果你在 /home/user/project 目录下运行这个命令,$(pwd) 会返回 /home/user/project

因此,整个命令会将当前目录添加到 PYTHONPATH 中,使得 Python 在当前目录中搜索模块。

2. 为什么有用

Python 在导入模块时,会按照一定的顺序在多个地方查找模块:

  1. 当前脚本所在的目录
  2. PYTHONPATH 环境变量中指定的目录
  3. 标准库目录和第三方库的安装目录(如 site-packages

当你运行 export PYTHONPATH=$(pwd) 时,你明确告诉 Python 在当前目录中查找模块,这对以下情况特别有用:

  • 模块在当前目录中:如果你的模块或包在当前目录中,但没有安装到标准的 site-packages 目录中,Python 默认不会在当前目录之外的其他地方查找这些模块。
  • 避免路径问题:有时你可能在子目录中运行脚本,而模块在父目录中,这时通过设置 PYTHONPATH 可以避免路径问题。

3. 示例

假设你的项目结构如下:

project/
├── chatchat/
│   ├── configs.py
│   └── init_database.py
└── libs/
    └── chatchat-server/
        └── chatchat/
            └── __init__.py

如果你在 project/libs/chatchat-server/chatchat 目录中运行 init_database.py,并且需要导入 chatchat 模块,可以这样设置 PYTHONPATH

cd project/libs/chatchat-server/chatchat
export PYTHONPATH=$(pwd)
python init_database.py --recreate-vs

这将确保 Python 能找到 chatchat 模块,因为当前目录已经被添加到 Python 的模块搜索路径中。

4. vscode配置

{
    "code-runner.executorMap": {
        "python": "cd $dir && PYTHONPATH=$PYTHONPATH:$(dirname $(pwd)) python -u $fileName", // 适用于 Linux 和 macOS
        "python": "cd $dir && set PYTHONPATH=%PYTHONPATH%;%cd%\\.. && python -u $fileName" // 适用于 Windows
    }
}

settings.json 中配置好后,你可以运行你的 Python 文件,验证 PYTHONPATH 是否正确设置为上一级目录。这样,无论是在 Linux、macOS 还是 Windows 上运行,PYTHONPATH 都会被设置为当前目录的上一级,确保能够找到并导入相应的模块。

二. Ubuntu20.04安装python3.12

一直报错如下:

poetry-demo-py3.8zkf@zkf-ubuntu18:~/poetry-demo$ sudo apt install python3.12
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package python3.12
E: Couldn't find any package by glob 'python3.12'

这个错误提示显示 add-apt-repository 工具找不到适合当前 Ubuntu 版本(focal)的发行版模板。你可以尝试以下步骤来解决这个问题:

  1. 确保系统更新

    # 这个命令会从所有配置的源(包括默认的 Ubuntu 仓库和任何添加的 PPA)下载最新的软件包信息。这样可以确保系统知道所有软件包的最新版本。
    sudo apt update
    #这个命令会升级系统中已安装的所有软件包到最新版本。它只会升级那些不会引起现有软件包依赖关系变化的包。
    sudo apt upgrade
    # 这个命令不仅会升级现有的软件包,还会处理依赖关系的变化,安装或删除必要的软件包。它比 apt upgrade 更加全面,适合在系统需要大规模更新时使用。
    sudo apt dist-upgrade
    # 这个命令会移除系统中不再需要的包,这些包通常是之前安装的软件包的依赖包,但现在已经不再需要。它有助于清理系统,释放磁盘空间。
    sudo apt autoremove
    
  2. 手动添加 PPA
    如果 add-apt-repository 不工作,你可以手动添加 PPA:

    sudo echo "deb http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/deadsnakes-ppa.list
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6A755776
    sudo apt update
    
  3. 安装 Python 3.12

    sudo apt install python3.12
    
  4. 验证安装

    python3.12 --version
    
  5. 安装依赖(如果需要):

    sudo apt install build-essential libssl-dev zlib1g-dev libncurses5-dev libnss3-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev
    

如果问题依然存在,可以尝试使用 deadsnakes PPA 提供的其他方法:

  1. 下载并安装 add-apt-repository 工具

    sudo apt install software-properties-common
    
  2. 再次添加 PPA 并安装 Python 3.12

    sudo add-apt-repository ppa:deadsnakes/ppa
    sudo apt update
    sudo apt install python3.12
    
  3. 清理包缓存并重试安装

    sudo apt clean
    sudo apt update
    sudo apt install python3.12
    

这些步骤应该能帮助你在 Ubuntu 20.04 上成功安装 Python 3.12。

在这里插入图片描述

# 升级pip的方法
$ sudo apt install python3-pip
$ python -m pip install --upgrade pip
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pip in ./.local/lib/python3.12/site-packages (24.0.0)

三. 默认让python指定到python3.12,现在是3.8

要将默认的 python 命令指向 python3.12,你可以使用以下步骤:

  1. 安装 python3.12(如果还没有安装):

    sudo apt update
    sudo apt install python3.12
    
  2. 更新 alternatives 系统
    使用 update-alternatives 命令来管理多个版本的 Python:

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 3
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 4
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.11 5
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.12 6
    

    这里的数字 12 代表优先级,数字越大优先级越高。

  3. 选择默认版本
    运行以下命令以选择默认的 Python 版本:

    sudo update-alternatives --config python
    

    这会显示一个交互式菜单,允许你选择默认的 Python 版本。选择与 python3.12 对应的选项。

  4. 验证更改
    运行以下命令来验证更改是否生效:

    python --version
    

详细解释

  1. 安装 python3.12
    确保系统中安装了所需版本的 Python。

  2. 更新 alternatives 系统

    • --install /usr/bin/python python /usr/bin/python3.8 1:将 /usr/bin/python 指向 /usr/bin/python3.8,优先级设为 1
    • --install /usr/bin/python python /usr/bin/python3.12 2:将 /usr/bin/python 指向 /usr/bin/python3.12,优先级设为 2
  3. 选择默认版本

    • sudo update-alternatives --config python:显示一个菜单,允许你选择默认的 Python 版本。
  4. 验证更改

    • python --version:检查当前默认的 Python 版本,确认更改已生效。

按照这些步骤操作后,你的系统应该会默认使用 python3.12

四. 使用建立软连接的方式

使用软连接的方式将 python 命令指向 python3.12 可以通过以下步骤完成:

  1. 安装 python3.12(如果还没有安装):

    sudo apt update
    sudo apt install python3.12
    
  2. 移除现有的 python 软链接(如果存在):

    sudo rm /usr/bin/python
    
  3. 创建新的软链接
    python 命令指向 python3.12

    # ln -s [目标文件或目录] [链接名称]
    sudo ln -s /usr/bin/python3.12 /usr/bin/python
    
  4. 验证更改
    运行以下命令来确认更改是否生效:

    python --version
    

详细步骤解释

  1. 安装 python3.12
    确保系统中安装了所需版本的 Python。

  2. 移除现有的 python 软链接

    • sudo rm /usr/bin/python:移除现有的 python 软链接(如果存在)。这一步确保不会有冲突的软链接。
  3. 创建新的软链接

    • sudo ln -s /usr/bin/python3.12 /usr/bin/python:创建一个新的软链接,将 /usr/bin/python 指向 /usr/bin/python3.12
  4. 验证更改

    • python --version:检查当前默认的 Python 版本,确认更改已生效。

完整命令

将所有步骤整合在一起:

sudo apt update
sudo apt install python3.12
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.12 /usr/bin/python
python --version

这样,你的系统应该会默认使用 python3.12

五. 如何直接删除python3.12

要直接删除 python3.12,可以使用以下步骤:

  1. 查找安装的 Python 3.12 包
    首先,检查系统中安装的 Python 3.12 相关包:

    dpkg -l | grep python3.12
    
  2. 删除 Python 3.12
    使用 apt 命令删除 Python 3.12 及其相关包:

    sudo apt remove --purge python3.12 python3.12-minimal
    
  3. 删除可能的残留文件
    在删除 Python 3.12 后,清理系统中可能的残留文件:

    sudo apt autoremove
    sudo apt clean
    
  4. 检查是否删除成功
    确认 Python 3.12 是否已被成功删除:

    python3.12 --version
    

如果命令输出提示 command not found,则说明 Python 3.12 已成功删除。

详细步骤解释

  1. 查找安装的 Python 3.12 包

    • dpkg -l | grep python3.12:列出所有包含 python3.12 的已安装包。
  2. 删除 Python 3.12

    • sudo apt remove --purge python3.12 python3.12-minimal:删除 python3.12 及其最小安装包,并清除其配置文件。
    • --purge:表示同时删除包及其配置文件。
  3. 删除可能的残留文件

    • sudo apt autoremove:删除系统中不再需要的依赖包。
    • sudo apt clean:清理下载的包缓存。
  4. 检查是否删除成功

    • python3.12 --version:检查 Python 3.12 是否已被成功删除。

示例

将所有步骤整合在一起:

dpkg -l | grep python3.12
sudo apt remove --purge python3.12 python3.12-minimal
sudo apt autoremove
sudo apt clean
python3.12 --version

通过这些步骤,你应该能够成功删除系统中的 Python 3.12。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI大模型前沿研究

感谢您的打赏,我会继续努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值