python环境配置

conda

Conda自动补全

在终端激活conda环境的时候按tab不能自动补全activate和环境名。安装后可用tab进行补全。
安装 conda-bash-completion 插件:GitHub
安装方法:

conda install -c conda-forge conda-bash-completion

常用命令

#创建虚拟环境
conda create -n your_env_name python=X.X(3.6、3.7等)
#激活虚拟环境
conda activate your_env_name(虚拟环境名称)
#退出虚拟环境
conda deactivate your_env_name(虚拟环境名称)
#删除虚拟环境
conda remove -n your_env_name(虚拟环境名称) --all
#添加 python 模块
conda install [module]
#查看安装了哪些包
conda list
#查看当前存在哪些虚拟环境
conda env list 
#检查更新当前conda
conda update conda
#更新anaconda
conda update anaconda
#更新所有库
conda update --all
#更新python
conda update python

配置

方法一:使用 conda config (推荐):

conda config 命令提供了方便的接口来管理 .condarc 文件。

  • 查看当前配置:

    conda config --show
    
  • 添加 channel:

    conda config --add channels <channel_url>
    # 例子:添加清华大学镜像
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
    
    # 设置优先级 (channel 优先级越高,越优先从该 channel 下载)
    conda config --set channel_priority strict # 严格按照 channels 列表的顺序
    # 或者
    conda config --set channel_priority flexible # 灵活调整优先级,允许从其他 channel 下载
    
    
  • 移除 channel:

    conda config --remove channels <channel_url>
    
  • 设置默认环境目录:

    conda config --add envs_dirs /path/to/your/envs
    
  • 设置默认包缓存目录:

    conda config --add pkgs_dirs /path/to/your/pkgs
    
  • 设置代理:

    conda config --set proxy_servers.http http://user:pass@proxy.server:port
    conda config --set proxy_servers.https https://user:pass@proxy.server:port
    
  • 禁用 SSL 验证 (不推荐,仅用于测试):

    conda config --set ssl_verify false
    
  • 启用离线模式:

    conda config --set offline true
    
  • 指定某个配置文件的位置

     conda config --file /path/to/your/condarc --show
    

方法二:手动编辑 .condarc 文件:

你可以使用任何文本编辑器手动创建或编辑 .condarc 文件。

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - defaults # defaults 通道通常需要保留

channel_priority: strict  # 或 flexible

proxy_servers:
  http: http://user:pass@proxy.server:port
  https: https://user:pass@proxy.server:port

ssl_verify: true  # 或 false (不推荐)

envs_dirs:
  - /path/to/your/envs

pkgs_dirs:
  - /path/to/your/pkgs

offline: false  # 或 true

常用配置参数详解:

  • channels:

    • 一个列表,指定了 conda 搜索软件包的 channel。
    • defaults 通常应该包含在列表中,它代表 Anaconda 官方维护的 channel。
    • 你可以添加第三方 channel,例如 conda-forge 或镜像站 (如清华大学镜像、中科大镜像等)。
    • 列表中的顺序很重要,排在前面的 channel 优先级更高。
  • channel_priority:

    • 控制 channel 优先级的策略。
    • strict: 严格按照 channels 列表中的顺序搜索软件包。如果高优先级 channel 中没有找到,即使低优先级 channel 中有也不会使用。
    • flexible: (默认值) 更灵活的策略,如果高优先级 channel 中没有找到软件包的最新版本,会尝试从低优先级 channel 中查找。
    • disabled: 不使用channel 优先级。
  • proxy_servers:

    • 一个字典,配置 HTTP 和 HTTPS 代理服务器。
    • 格式: protocol: http(s)://username:password@proxy_ip:port
  • ssl_verify:

    • 控制是否验证 SSL 证书。
    • true: (默认值) 验证 SSL 证书。
    • false: 不验证 SSL 证书 (不安全,仅用于测试)。
    • 也可以设置为证书路径。
  • envs_dirs:

    • 一个列表,指定了 conda 环境的存储位置。
    • 默认情况下,conda 环境存储在 conda 安装目录下的 envs 文件夹中。
    • 你可以添加其他目录,conda 会在这些目录中查找和创建环境。
  • pkgs_dirs:

    • 一个列表,指定了 conda 软件包缓存的存储位置。
    • 默认情况下,conda 软件包缓存存储在 conda 安装目录下的 pkgs 文件夹中。
  • offline:

    • 控制 conda 是否在离线模式下运行。
    • true: conda 不会尝试连接到网络,只使用本地缓存的软件包。
    • false: (默认值) conda 会尝试连接到网络。
  • always_yes:

    • 自动对所有提示回答 “yes”。 谨慎使用。
    • truefalse
  • auto_activate_base:

    • 控制是否在 shell 启动时自动激活 base 环境。
    • truefalse (默认为 true)
  • changeps1:

    • 修改终端提示符,显示当前所处的 conda 环境。
    • truefalse
  • repodata_fns: 指定从通道检索 repodata 文件时使用的函数。默认情况下,conda 使用内部函数。你可以指定自定义函数来处理 repodata 的下载和解析。

  • solver:

    • Conda 4.6 及更高版本引入了一个新的依赖项解析器(classic, libmamba, libmamba-draft)。
    • classic (默认): conda的经典解算器。
    • libmamba: 使用 libmamba 库的更快求解器(需要安装 conda-libmamba-solver 包)。
      conda install -n base conda-libmamba-solver
      conda config --set solver libmamba
      
    • libmamba-draft: libmamba 求解器的实验版本。

pip

换源

命令行

pip/pip3用于python软件模块下载,通过以下命令配置下载源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

环境变量

export PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple

配置文件

通过~/.pip/pip.conf文件配置,如果没有这个目录和文件,可以生成一个进行设置,如下

mkdir ~/.pip
vim ~/.pip/pip.conf

填入以下内容:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com

之后更新

pip install update

这样就切换成国内源了,安装时速度非常快。
其它的源设置类似,只需要修改服务器即可,如清华源等:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

在ros中使用conda虚拟环境

环境变量PYTHONPATH是一个用于Python解释器的环境变量,它的作用是指定Python在运行时搜索模块(包括包和库)的路径。当Python程序运行时,它会在PYTHONPATH指定的路径中查找导入的模块。

具体来说,PYTHONPATH的作用包括:

  • 模块搜索路径:
    当你在Python代码中使用import语句导入模块时,Python解释器会在PYTHONPATH指定的路径中搜索这些模块。如果找到了,它就会加载这些模块;如果没有找到,它会抛出ImportError异常。

  • 覆盖标准库:
    PYTHONPATH允许你覆盖Python的标准库中的模块。如果你在PYTHONPATH中指定了一个与标准库同名的模块,Python解释器会优先使用PYTHONPATH中的模块。

  • 扩展Python路径:
    默认情况下,Python解释器只在特定的几个路径中搜索模块,包括当前目录和系统的标准库目录。PYTHONPATH允许你扩展这个搜索路径,包括自定义的目录。

  • 跨平台兼容性:
    PYTHONPATH在不同的操作系统中都是有效的,这使得它在跨平台开发中非常有用。

  • 动态路径修改:
    你可以在运行时动态地修改PYTHONPATH,例如在脚本中使用os.environ来添加或修改路径,这样可以在不重启程序的情况下改变模块的搜索路径。

  • 环境隔离:
    在开发大型项目或使用虚拟环境时,PYTHONPATH可以帮助隔离不同项目的环境,确保每个项目使用自己的依赖库,避免版本冲突。

使用系统python解释器

export PYTHONPATH=$PYTHONPATH:$CONDA_PREFIX/lib/pythonX.Y/site-packages
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH

使用conda环境解释器

在ROS2包的setup.cfg文件中,可以添加以下配置来指定Python解释器:

[build_scripts]
executable = /usr/bin/env python3

创建虚拟环境 在创建虚拟环境时,需要将系统环境中的ROS2包链接到虚拟环境中

python3 -m venv your_venv_name --system-site-packages --symlinks

设置环境变量

export PYTHONPATH=$PYTHONPATH:$CONDA_PREFIX/lib/pythonX.Y/site-packages
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Shilong Wang

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值