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”。 谨慎使用。
true
或false
-
auto_activate_base
:- 控制是否在 shell 启动时自动激活
base
环境。 true
或false
(默认为true
)
- 控制是否在 shell 启动时自动激活
-
changeps1
:- 修改终端提示符,显示当前所处的 conda 环境。
true
或false
-
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