pip踩坑记录

1、服务器模型奇妙出现了pip安装任何包、换任何源都连接超时的问题,让人焦头烂额。起初怀疑是服务器访问不了外网,但是ping baidu.com非常正常。然后ping 清华源,豆瓣源等等,发现都ping不通,只有百度能ping通。发现ping其他pip源时返回的提示信息里面的ip地址是ipv6格式的,就很奇怪。

后来上网查发现大多数网站都没有一个稳定使用的ipv6地址,如果以v6的形式去通信,肯定有问题(个人理解)。但是ping百度时默认的是ipv4的地址,很奇怪不知道为什么。于是我怀疑是服务器在访问其他网址时一直用的v6的地址,造成通信不畅。起初怀疑是dns解析错了,但是我拿另外一台正常服务器的网络配置(dns地址等)完全配置给有问题的机器,发现还是不行。即使ip只有最后一位数字不同,dns完全相同,代理地址(学校)完全相同,pip源完全相同,就是不行。

然后我考虑是否能调整v4服务和v6服务的优先级,这个一搜就有,按照教程把v4的优先级提前,结果发现还是不行。然后索性把v6服务完全禁掉,这个随便一搜也有教程,只留v4的服务,没想到,真的成功了。能够ping通除了百度其他的网址,pip安装也似乎正常了。不过似乎v4
和v6服务同时开启时,其中一项网络不通会自动启用另一项,但是之前真的不知道为什么完全不行。

pip能正常安装后,我又重新分别测试了恢复默认的v6网络优先级,和重新启用ipv6服务,结果现在网络也依然是正常的,至今不知道之前网络极端不正常的最关键因素是什么。

2、关于pip换源的问题,在解决上个问题的过程中,也看了很多pip换源的问题,发现有很多种设置。最全面的一个解释是这条博客
在这里插入图片描述
三个参数global,site, user,分别代表的具体含义文中也给出了解释:
在这里插入图片描述
具体的优先级我没有考证,但这条命令很清晰地列出了所有可以指定pip源的文件以及相应的位置,如果想进行修改非常容易。

3、关于很多时候在虚拟环境中pip默认安装不到当前虚拟环境的问题。
这个问题网上回答超级多,问题很常见,但是大部分回答都没说到点子上,只是治标不治本的一些方法,这儿有个回答说的非常好
总结一下,应该就是不管你当前的路径如何,又是在哪个环境中,pip install xxx命令执行时,其所安装的包总是对应于当前pip版本的。我的理解中,pip版本是对应于python解释器的。

  1. 不管你创建了多少虚拟环境,如果这些环境并没有指定特殊的python版本,而是基于当前所使用的anaconda的那一个基本的python解释器,那你在任何环境中pip install都会安装首先默认安装到你所使用的anaconda的pckg路径下。但如果你所使用的anaconda所在的并不是你当前账号(非root),也就是说你没权限往人家的账号(anaconda所在账号)写入内容,那pip安装就会退而求其次,在你的当前账号下安装全局pckg(一般可能在~/.local/路径下?)。如果还是这个背景条件下,你使用pip install xxx --user命令,在原来的基础上额外添加了–user,则pip会直接安装在当前账号全局变量包路径下,而不会先去尝试在anaconda所属路径去安装。
  2. 再说一下当某个虚拟环境的python解释器与默认anaconda不是同一个时,pip installxxx命令会自动在当前python所在的路径去安装。比如在创建该环境时指定了python版本,conda create -n xxx python=xxx,不管这个python版本号是否与anaconda默认的相同,该环境的python解释器都是新创建且隶属于当前账号~/.conda/env/xxx路径下的,所以对应于该环境的pip 默认的安装地址一定也是该环境内。
  3. 所以,总结来说就是,pip install默认安装的路径一定是与当前python解释器路径一致的。

4、最后一个小坑,就是可能有时候发现我指定了一个新的python解释器创建了一个新环境,但是激活环境后pip 安装的包依旧不在我的虚拟环境目录里面。
这篇文章大概率会解答这个问题
以前我为了图省事,把自己账号的~/.bashrc文件中添加了 账号一登录就conda activate xxxx(我自己常用的环境)的命令,这样就不用再自己手动激活。但是如上面文章所说,这样其实已经嵌套了好几层了。但是无论来回切换嵌套多少层,pip的版本总是对应于最初激活的那个base环境,所以最好的方法就是取消账号登录激活base环境的做法,然后自己手动选择初始激活哪个环境,该终端对应的即为该环境的python解释器对应的那个pip版本,默认的安装地址也即python解释器的相应位置。
另一篇关于修改默认激活环境的文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/340898.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实验:MySQL 客户端SocketTimeout 抓包分析

实验准备 服务端环境准备 服务器信息 阿里云 99 大洋白嫖机 $ cat /proc/version Linux version 5.15.0-83-generic (builddlcy02-amd64-027) (gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #92-Ubuntu SMP Mon Aug 14 09:30:42 UT…

AVL树底层实现

目录 AVL树简介 AVL树节点定义​编辑 AVL树特性 AVL树的建立 AVL树的插入 AVL树的旋转 验证AVL树 AVL树的实现(代码部分) AVL树简介 AVL树是对二叉搜索树的改进,二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序…

栈|数据结构|C语言|详细讲解|代码实现

介绍栈 内存可以分为“静态内存”和“动态内存”,讲台内存是在栈中分配的,动态内存是在堆中分配的。 静态或局部变量,是以压栈和出栈的方式分配内存的,就叫栈区; 动态内存是一个一种堆排序的方式分配内存的&#xf…

服务器感染了.wis[[Rast@airmail.cc]].wis勒索病毒,如何确保数据文件完整恢复?

导言: 在当今数字化的时代,恶意软件攻击已经变得越来越复杂和狡猾,[[MyFilewaifu.club]].wis [[backupwaifu.club]].wis[[Rastairmail.cc]].wis勒索病毒是其中的一种新威胁。本文91数据恢复将深入介绍[[MyFilewaifu.club]].wis [[backupwaif…

【Ubuntu18.04安装Labelme】

Ubuntu18.04安装Labelme 1 安装Anaconda并创建conda环境2 安装依赖3 安装Labelme4 安装验证 1 安装Anaconda并创建conda环境 Anaconda3安装教程:https://blog.csdn.net/dally2/article/details/108206234 "ctrlaltt"快捷键打开终端,创建conda…

牛逼的签章平台 亲测好用的4.5k+star开源的文档签署平台DocuSeal部署教程

亲测可以使用 使用起来相对好用 比我们自己做的电子合同系统功能还要多 几乎结合了我们两个系统的功能 牛逼 DocuSeal简介 DocuSeal 是一个开源的文档签署平台,可以让你轻松地创建、填写和签署数字文档,提供了一个用户友好的替代方案,与 Doc…

磁盘格式化

系列文章目录 磁盘格式化 磁盘格式化 系列文章目录在WIN下磁盘格式化 在WIN下磁盘格式化 1.右键单击计算机并选择管理。 2.从弹出的计算机管理界面中选择磁盘管理。 3.右键单击要格式化的磁盘,并从弹出菜单中选择格式化。 4.弹出格式化参数,你可以根据个…

C++入门学习(十二)字符串类型

上一节(C入门学习(十一)字符型-CSDN博客)中我们学到如何表示和使用一个字符串,本篇文章是字符串(多个字符)。 定义字符串主要有两种方式: 第一种: char str[] "…

咖啡+茶更续命!川大华西最新:每天饮用3杯茶,抗衰效果最好!同饮咖啡死亡风险下降22%

茶与咖啡,是全世界消费最广泛的饮料之二—— 茶是世界上仅次于水、消费量第二大的饮料,全球约有30亿人喜欢喝茶,基本上每3人中便有1人爱喝茶;至于大家有多爱喝咖啡?顶刊Science的数据统计显示,全世界平均每…

DolphinScheduler-3.2.0集群部署教程

本文目录 1.集群部署方案(2 Master 3 Worker)2.前置准备工作3.端口说明4.DS集群部署1.时间同步2.配置用户、权限3.配置集群免密登陆4.ZK集群启动5.初始化数据库1.创建数据库、用户、授权2.解压缩安装包3.添加MySQL驱动至libs目录 6.配置文件修改1.dolphinscheduler_env.sh 配置…

深度学习(1)--基础概念

目录 一.计算机视觉(CV) 二.神经网络基础 三.神经网络整体架构 一.计算机视觉(CV) (1).计算机视觉中图像表示为三位数组,其中三维数组中像素的值为0~255,像素的值越低表示该点越暗,像素的值越高表示该点越亮。 (2).图像表示 A*B*C&#xf…

专业140总分420+南京大学851信号与系统考研经验电子信息通信信号与信息处理

今年专业140,数学140,总420,圆梦南京大学,一年多的备考,期间有段时间,有过犹豫,有过纠结,有过迟疑,但最后还是理性战胜感性,坚持了下来,总结这一年…

RTDETR 引入 超越自注意力:面向医学图像分割的可变形大卷积核注意力

医学图像分割在转换器模型的应用下取得了显著的进展,这些模型擅长捕捉广泛的上下文和全局背景信息。然而,这些模型随着标记数量的平方成比例增长的计算需求限制了它们的深度和分辨率能力。大多数当前的方法通过逐层处理D体积图像数据(称为伪3D),在处理过程中错过了关键的跨…

网址链接的二维码如何制作?扫码怎么跳转其他网页?

随着互联网的快速发展,大家可以从网上找到自己满足自己需求的信息或者其他内容,大多数情况下现在都可以用手机来完成。现在很多的内容都是需要通过扫码来查看的,那想要将一个网址链接生成二维码图片,具体该怎么实现这一需求呢&…

RAMROM

RAM(Random Access Memory),随机存取存储器,也叫主存,又称内存(动态ROM),是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度…

mybatis代码生成器

注意 适用版本:mybatis-plus-generator 3.5.1 以下版本 AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。 // 演…

Unity工程没有创建.sln文件,导致打开C#文件无法打开解决方案

最近又开始折腾些Unity的小项目,重新遇到一些常见的小问题 点击报错文件 却没有打开文件 于是查看了下打开Window->Package Manager 选择Unity Registry 搜索Visual Studio Editor,发现并没有安装 同理,也可以安装VSCode的插件 问题解决了…

性能进阶:使用JMeter进行websocket测试【建议收藏】

本次测试案例主要是分享如何使用JMeter进行websocket协议下的聊天接口性能测试。 包含websocket插件的下载安装、线程组及sampler的设置、csv参数化和组建分布式测试的方法、如何通过调整参数来获得发压机的最大并发数以及对测试过程的总结。 整篇文章只侧重介绍进行websocke…

磁盘的分区与文件系统的认识

磁盘的认识 了解磁盘的结构: 1、盘片 硬盘首先会有多个盘片构成,类似很多个独立的光盘合并在一起,每个盘片都有2个面,每个盘片都有一个对应的磁头,我们的磁头横移和盘面的旋转就可以读写到盘面的每一个位置&#xff0c…