python3.9配虚拟环境搭建numpy、tensorflow、matplotlib解决版本不兼容问题

一、前言

随着学的越来越深,发现以前有很多东西配置啊安装啊是不够清晰的、写Python作业经常会出现版本不兼容的问题,只会照着网上的经验贴复制粘贴代码,而不懂得背后的逻辑,所以产生这篇经验贴,想着一次性搞好环境版本不兼容的问题。

我的电脑没有独显,所以用的都是cpu可兼容的版本,使用的系统是Windows 11。

首先需要提前做的事情是:

  • 下载Python解释器
  • 下载并配置Pycharm
  • 下载并配置Anaconda

二、Python开发环境

我用的是Pycharm专业版,网上有很多破解版教程可以自行搜索。

一开始我用的是vscode,后面发现不方便。为什么呢?因为大一的时候学c语言,编写c语言是在vscode里面的,后面写python也想在vscode里面,结果一通操作之后,vscode的环境由c语言变成了python搞得c语言又要重新配环境,就很麻烦。(相信你们应该知道vscode配c语言环境有多麻烦。。。)后面导致重新vscode配c语言环境也是老是用不了,反反复复配。所以Python还是乖乖在Pycharm里面跑吧。

这里建议用专业版,不然以后深入学习的话有些功能用不了。

三、用什么下?介绍一下pip和conda

pip和conda都是可以用来管理包的。所谓包,简而言之就是实现功能的工具吧,就犹如画图要用笔,计算要用计算器。我们使用的python基本库有些功能是无法实现的,或者有更好的实现方式,这些实现的方式可以放在包里面,我们把包下载下来后就可以调用包里面的功能。

我以前pip和conda都是在Anaconda Prompt里面混着用的,因为网上搜索下载包的教程有时候用pip的指令来下有时候用conda的指令来下,我只会复制粘贴代码。但其实它们是有不同之处,结合网上的一些经验贴总结如下[1][2]:

  • pip只能下载python的包,conda除了下载python的包还可以下载别的包。
  • pip可以在任何环境下载包,conda只能在conda环境下下载包。
  • pip 和 conda 的python安装包路径在虚拟环境下都是 xxxx\Anaconda3\envs\a_conda_env\Lib\site-packages,conda 安装非python包路径是 xxxxx\Anaconda3\pkgs。
  • conda 会覆盖pip安装的包,pip 不会覆盖conda的包。

四、从哪里下?介绍一下镜像源

镜像源其实就是包下载的地方啦,在镜像源里面下载会比在国外网站下载快。

常用的镜像源[3]:
阿里云:http://mirrors.aliyun.com/pypi/simple
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple
中国科学院:http://pypi.mirrors.opencas.cn/simple
1、查看镜像源

可以在Anaconda Prompt中输入conda --show channels查看镜像源的路径。可以看出,我这里用的是清华的镜像源,有一个问题是我挂着tizi的时候不能下载包,会出现网络错误,不知道是不是镜像源的问题,总之下载的时候别挂着tizi就行了。
在这里插入图片描述

2、更换镜像源

可以参考这一篇博客,写的挺详细的:yutu7:Anaconda更换镜像源的相关配置。我没换过镜像源,下次有空试试(踩踩坑)。

五、怎么下?Anaconda配置虚拟环境[4]

1、查看Python版本

打开Anaconda Prompt,输入python --version,可以看出我这里下载的base(本地的)的python版本是3.9.12。
在这里插入图片描述
有时候我们需要用不同的python版本,例如3.8的,但是又不方便修改本地base的python版本,怎么办呢?所以就需要创建虚拟环境,在虚拟环境中配置你想要的python版本。一般来说,一个环境中的python版本随意更改之后,该环境的其他包会很容易出现不兼容问题。

2、创建虚拟环境

如果之前已经创建了虚拟环境可以不用创建,直接把包装进虚拟环境即可。可以跳转下面的第3条。

接着在Anaconda Prompt中,输入conda create -n 虚拟环境的名字 python=3.9,例如:我这里创建的虚拟环境的名字是EnvPython3.9,这个名字可以随便取。python版本设置为3.9。

会冒出来一大串东西:
在这里插入图片描述
在这里插入图片描述
意思就是我原本的conda环境(23.7.4)太老了,它WARNING让我升级conda(23.10.0)。
创建的虚拟环境的地址是在D:\Anaconda\envs\EnvPython3.9当中。
The following NEW packages will be INSTALLED的意思是从下列地址当中把包装进这个新的虚拟环境中。
Proceed ([y]/n)?意思是要继续下载吗?我们选择y,确定下载。

3、查看创建的虚拟环境

接着在Anaconda Prompt中,输入conda info --envs。可以看出,刚刚创建的虚拟环境EnvPython3.9出现在列表中,说明确实创建成功。星号*所指的就是目前所在的环境base,第一行中(base)也说明现在的环境是本地环境。

在这里插入图片描述
我们还可以删除多余的虚拟环境,输入conda remove --n 虚拟环境名字 --all,例如:删除EnvPython9这个虚拟环境。Proceed ([y]/n)?我们选择y,确定删除。

4、激活虚拟环境

输入activate (虚拟环境名字)即可激活该虚拟环境,接着我们可以输入conda list查看这个虚拟环境中配置的包。从图中我们可以看出,第三行括号里面的环境已经切换为我们想配置的虚拟环境当中了,而且之前创建虚拟环境的同时,会把最新版的pip也装进去。对比于base中的包,这个虚拟环境中的包的数量显然少很多,所以下一步我们还需要在该虚拟环境中搭载我们需要的包。
在这里插入图片描述
我们也可以输入conda deactivate 退出当前的虚拟环境回到base环境中
在这里插入图片描述

5、常用的命令
操作pip命令conda命令
下载包pip install 包名pip install -n 指定环境名 包名pip 包名==指定版本conda install 包名conda install -n 指定环境名 包名conda 包名==指定版本
删除包pip uninstall 包名conda uninstall 包名
查看该环境安装的包pip listconda list

接着我们可以利用以上命令来管理包,一般来说是通用的,但会有少许不同。查阅资料发现,程序猿的探索之路的这篇博文提到:

  • conda会检查版本的依赖性,pip不会。这也就导致pip下的包可能会因为不兼容而用不了。

  • 如果同时用conda和pip下了同一个但不同版本的包,可能会出现冲突,需要手动删除其中一个。

      这几个是可以兼容的
      python 3.9.18
      matplotlib 3.8.0 
      numpy 1.26.2
      tensorflow-cpu 2.15.0
    

下载numpy(建议先下载numpy):pip install numpy==1.26.2
下载matplotlib:pip install matplotlib==3.8.0
下载tensorflow-cpu:pip install tensorflow-cpu==2.15.0

六、Pycharm中切换虚拟环境

打开pycharm

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后点确定-确定就切换成功了。

在这里插入图片描述
如果看不懂,这里有个油管的视频版教学:油管创建虚拟环境后在pycharm中更换虚拟环境

参考

  • 10
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值