Linux环境conda虚拟环境中python解释器对应问题 + 解决后pip install 路径仍是系统python的依赖路径问题

1. 问题一:开启了虚拟环境但python解释器仍是系统安装的python

1.1 原因

在创建虚拟环境时没有显式指定python版本,导致所创建的虚拟环境下没有bin目录。

原理:在虚拟环境下,运行python时,会先找当前虚拟环境下的python,默认的路径是虚拟环境目录下的/bin目录中的python。当虚拟环境中没有bin目录,虽然此时用conda list查看仍已安装python,但anaconda找不到/bin,因此只能调用系统的pyhton解释器。

1.2 解决

把虚拟环境删掉,再重新下回来,后面加上显示指定即可。

	conda create -n 'my-env' python=3.8

后面加上python=3.8即可

2. 问题二:在虚拟环境下,使用conda能安装到本虚拟环境的/home/urname/anaconda3/envs/your-env/lib,但pip仍安装到系统python的包路径

2.1 原因

虚拟环境的python的site.py中默认 USER_SITE=None

使用pip安装时首先查看USER_SITE中的地址,当site.py中的USER_SITE=None就导航到系统默认python的包路径中。(可能是根据USER_BASE或其他方式)

2.2 解决

修改site.py中的

USER_SITE=/home/urn
Conda虚拟环境中,**优先使用`conda install`**,但在特定场景下`pip install`可作为补充。以下是具体分析和建议: ### **为什么优先用`conda install`?** 1. **环境一致性** Conda会管理所有依赖(包括Python解释器、科学计算库等),避免因版本冲突导致环境崩溃。例如,安装`numpy`时,Conda会同时解决依赖的`mkl`、`blas`等底层库的兼容性问题。 2. **跨平台支持** Conda包预编译了针对不同操作系统Linux/Windows/macOS)和架构(x86/ARM)的二进制文件,无需手动编译,而`pip`可能因系统差异导致安装失败。 3. **多语言支持** Conda可管理非Python依赖(如R、Julia的包),适合多语言混合项目。 ### **何时用`pip install`?** 1. **包仅在PyPI存在** 若目标包未通过Conda分发(如某些小众库或最新发布的包),需用`pip`安装。例如,`transformers`库的最新版本可能先在PyPI更新。 2. **开发版或本地包** 安装本地开发的包或从Git仓库直接安装时,`pip install -e .`或`pip install git+...`更灵活。 3. **依赖冲突解决** 若Conda无法解决复杂依赖(如深度学习框架的特定版本),可先用`conda install`安装主要包,再用`pip`补充剩余依赖,但需谨慎测试环境稳定性。 ### **混合使用的注意事项** - **顺序问题**:先`conda install`,再`pip install`,避免反向操作导致依赖覆盖。 - **环境隔离**:确保所有包安装在当前Conda环境中(检查`conda list`和`pip list`是否一致)。 - **版本锁定**:使用`environment.yml`或`requirements.txt`记录包版本,便于复现环境。 ### **示例流程** ```bash # 1. 创建并激活Conda环境 conda create -n my_env python=3.9 conda activate my_env # 2. 优先用Conda安装核心包 conda install numpy pandas # 3. 若需PyPI独有包,再用pip pip install transformers # 4. 验证环境 conda list pip list ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值