前言
这个标题是实践总结,为什么呢,因为这个问题困扰了我整整一个月,都没有解决。现在终于解决了,写一篇文章记录一下,也看看有没有小伙伴遇到一样的问题,或者在我下次还会发生这样的实情事可以第一时间解决,幸好不着急,不然就g了。
问题描述
就是我在暑假用python做了一个网页,这也是我学python以来第一个 大项目,做完之后,电脑太卡了,太乱了。然后就把电脑恢复出厂了,想着项目我已经做好了电脑再怎么折腾都会运行的,可是,等我把软件,环境全部装好之后,就发现好多报错。也不是报错,好多提示,一会是这个库没有安装,一会是python没有解释器。
库没安装,好办,我去安装,这一次我聪明了,做我恢复之前我搜过一个技能,怎么把项目中用到的库导出来,
pip freeze > requirements.txt
这个命令,可以把当前环境或者项目用到的第三方库全部导出来放到一个requirements.txt 文件里面,方便下次一次性安装。
那我接下来安装
pip install -r requirements.txt
我安装完了。没有解释器,那我自己配置一下,但是还是提示我没有安装模块,但我我真的是确确实实安装了。
解决方案
最后我解决了,怎么解决的,归根结底还是我环境弄得不对,因为我学习的大数据,老师让我们使用anaconda。因为这个软件我用了半年了,大致有个了解,就是个python的发行版本。这一次直接给电脑安装了anaconda,没有安装python。
先说一下我的问题,我确确实实安装了第三方库,但是我错了,我把环境弄错了,我做的项目和我安装第三方库的不是一个环境。怎么理解呢,我住在这个房间,但是我把东西放在了那个房间。这么一来,我为什么找不到我的东西,因为我放错地方了。而且我百度,还创建好多没用的环境
然后我又安装python、卸载python,安装anaconda,卸载anaconda。来回横跳,就是不行
然后最近又在捣鼓一个东西,这里我大致了解了一些python环境相关的知识。今天,2022,10,31日解决了。今天是万圣节。
我记录一下解决过程
anaconda
介绍
一开接触这个,弄得我一头雾水,现在学习了快一年了,基本明白了。
先看一下百度百科对anaconda的解释
Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等
Miniconda包括Conda、Python
conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换
我用了这么久我来说一下这是什么意思
这是python的升级版,pro版
一大堆的安装好的工具包,就是说在没有使用anaconda的时候,我们使用一个第三方库,都有先pip install 一下。是不是觉得很麻烦,我就想过这个问题,有没有什么方法可以不用安装这些库,自动就安装好,我一用pip 就会报错。而anaconda对于像数据分析用的numpy、pandas等等这些工具包,不需要我们额外安装。已经带好了
conda是什么事,就是用来管理包的工具,其实和pip一样。我看好多文档,这是conda下载的比较全面,这个我具体不知道。
python,如果你觉得是python的解释器,那就对了一半,还有一半,现在python3.11都出来了,在我们之前安装的时候,就只能安装python的一种版本,但是anaconda不一样,你可以用python的各种版本,3.x、2.x来回切换。
这里就提到了一个虚拟环境,一开始我也是不明白,是这样的
我们现在用多个项目,那我就可以为每一个项目创建一个工作环境,对,虚拟环境也可以理解为工作环境。让这个项目只在属于自己的环境下开发,这时我们就可以每一个工作环境创建不同的python版本。各自版本的第三方库互不干扰。
anaconda,现在我用习惯了,都觉得很方便
因为提供了虚拟环境,所以也不用安装python了,这个里面就已经有了,但是要学会配置。
-
更新anaconda conda update anaconda
环境管理
查看anaconda版本
conda -V
注意这个V 要大写。这一步也是检测anaconda有没有安装成功的重要方法
查看所有虚拟环境
conda env list
或
conda info -e
或
conda info --envs
查看当前有哪些 虚拟环境,这里我要演示一下
(base) PS C:\Users\huan> conda env list
# conda environments:
#
base * D:\anaconda3
base 是环境名称,D:\anaconda3 是环境的安装位置
如果是新安装的anaconda,那么默认有一个base环境,
怎么看当前的环境,有两种方法,第一种,在我们列出所有环境扽时候,会有一个星号* 这就是当前环境。
第二种,我们看这里(base) PS C:\Users\huan> ,其中(base) 就是我们选择的环境
创建环境
conda create -n <env_name> <python=version>
激活当前环境
conda activate <env_name>
刚才创建了个test环境,那我就选择这个环境。 conda activate test
怎么检查python的安转版本是否正确。
(test) PS C:\Users\huan> python
Python 3.11.0 | packaged by conda-forge | (main, Oct 25 2022, 06:12:32) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
也可以通过这里查看环境有没有切换成功:(test) PS C:\Users\huan> (test)
在命令行输入python。Python 3.11.0 就是python的版本。
输入python后,会进入python的环境,但是现在用不到python。所以exit() 退出
(test) PS C:\Users\huan> python --version
Python 3.11.0
刚刚搜索,这样也可以查看python版本
python --version
退出环境
conda deactivate
复制环境
conda create --clone <old_env_name> -n <new_env_name>
删除环境
conda remove --name <env_name> --all
在删除环境时,一定要先退出要删除的环境,conda deactivate
注意,在删除环境时,会有一个防误删操作,有一个提示
Proceed ([y]/n)? y
如果要删除,输入y。
环境删除后,但没有完全删除,要把安装环境的那个文件夹手动删除,否则会影响下一次安装一个相同名称的环境
分享环境
这个就可以进行跨设备分享环境,我看文章说是有一些大佬会在GitHub上分享环境,那么我们如果看见.yml 后缀的文件,那么一定是anaconda的环境分享,我们就可以安装
但是这个格式好像并不是conda环境的专属格式
conda包管理
更新conda
conda update conda
查看当前环境已经安装的包
conda list
安装包
-
为指定环境安装包 conda install --name <env_name> <package_name>
conda install --name test pandas ,为test环境安装pandas包,但我现在并不需要在test环境,有可能我在base环境 -
为当前环境安装包 conda install <package_name=version>
conda install pandas ,我要给那个环境安装pandas包,那我必须要在那个环境里面
可以安装包的指定版本
卸载包
-
卸载指定环境的包 conda remove --name <env_name> <package_name>
conda remove --name test pandas ,卸载test环境下的pandas包, -
卸载当前环境的包 conda remove <package_name>
conda remove pandas 卸载pandas包
更新包
搜索包
conda换源
查看镜像源
查看当前设置了哪些镜像源
conda config --show channels
Windows
-
命令行方式 conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes
-
修改配置文件 这是一个官方教程:anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 先是执行这段命令conda config --set show_channel_urls yes ,会在用户目录下生成一个.condarc 的配置文件。 channels:
- https://mirrors.tuna./anaconda/pkgs/free/
- https://mirrors.tuna./anaconda/cloud/menpo/
- https://mirrors.tuna./anaconda/cloud/bioconda/
- https://mirrors.tuna./anaconda/cloud/msys2/
- https://mirrors.tuna./anaconda/cloud/conda-forge/
- https://mirrors.tuna./anaconda/pkgs/main/
- defaults
show_channel_urls: true
吧这段内容复制到那个文件。 然后就可以了。
Linux
-
命令 conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes
-
修改配置文件 配置文件是~/.condarc ,要用vim打开,即vim ~/.condarc 复制下面的文件 show_channel_urls: true
channels:
- https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
- https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
- https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
- https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
- defaults
这个命令和Windows的命令是一样的,但是配置文件就不一样了。
镜像源恢复
conda config --remove-key channels
pip的一些使用
虽然我已经好久不用pip了,但是这个作为一开始接触python的来说,这是一个重点,而且在我的印象里,pip的更新速度非常快,在我一开始学习pip的时候,每次安装第三方库时,总是说提示需要升级pip,每一次我都是问人,一点不会。
现在熟悉了,也记录一下
pip相关命令
安装包
-
直接安装包 pip install <package_name[==version]>
pip install numpy 安装numpy库 也可以安装指定的版本,例如:pip install numpy=1.8.2 , 如果没有指定的版本,会报错。 -
安装whl格式的包 pip install <XXX.wh>
pip install pandas-1.5.2-cp39-cp39-win_amd64.whl 安装pandas库,但是注意安装的pandas库是一个pandas-1.5.2-cp39-cp39-win_amd64.whl 文件,后缀名为.whl 因为有些时候并不能很顺利的直接安装包,可能这个包已经停用了,也可能因为网络问题,所以我们就需要手动下载包,然后安装 .whl 文件,python wheel文件,本身是就是一个压缩包。可以理解为是特殊的压缩包,只有pip可以识别,我也了解不多 提供一个下载python wheel文件的链接,Archived: Python Extension Packages for Windows - Christoph Gohlke ()
查看包
两种查看包的方式,但是-f的比较全面
搜索包
pip的搜索包好像被禁用了,如果使用的话需要下载。
pip install pip_search
然后可以搜索包
pip_search <package_name>
例如 pip_search pandas ,搜索pandas包
更新包
卸载包
pip uninstall <package_name>
pip uninstall numpy 卸载numpy
下载包
pip download <package_name>
pip download numpy ,下载numpy包,但是并不安装,下载的是wheel文件,
导出与导入
这个很常见,导出当前环境的所有包,是一个txt文件,然后可以在重新安装。我在上面也说到了我用的这个方法。
但是我现在更推荐直接分享环境。
pip换源
因为安装的库基本上都来自国外,因此我们下载就会非常慢。单号的是有国内的镜像源,
conda也是这个道理,但是我还没有找到解决方法。
阿里云源: http://mirrors.aliyun.com/pypi/simple/
中国科技大学源: https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) 源:http://pypi.douban.com/simple/
清华大学源: https://pypi.tuna./simple/
中国科学技术大学源: http://pypi.mirrors.ustc.edu.cn/simple/
以上是一些镜像
-
临时换源 pip install <> -i <url>
pip install numpy -i https://pypi.tuna./simple/ 用清华大学的源下载numpy -
永久换源 pip config set global.index-url <url>
pip config set global.index-url https://pypi.tuna./simple 更换清华大学的原 但是这种换源方式会有提示,不过已经换源了。 Writing to C:\Users\huan\AppData\Roaming\pip\pip.ini
这是那个提示信息,应该是让你写进pip.ini 这个文件。打开这个文件 [global]
index-url = https://pypi.tuna./simple
就是这么一段内容,应该是在index-url = 输入镜像源
到这里,pip的一些常用命令我就写完了。如果是初学者建议还是用pip安装,pip好像不能管理环境。
问题解决
前面说是我环境的问题
我是用anaconda+pycharm写的程序,所以现在的问题是怎么在pycharm里面切换环境。
首先,我们应该要知道我们安装环境,那么环境安装到了哪里
(base) PS E:\huan\桌面> conda env list
# conda environments:
#
base * D:\anaconda3
new D:\anaconda3\envs\new
test D:\anaconda3\envs\test
conda env list 这个命令我们现在已经很熟悉了,那就是查看当前的环境。
其实已经很直白了,左边显示的环境名称,右边显示的是环境安装的位置。
以test 环境为例,那么环境的安装位置就是D:\anaconda3\envs\test
我们可以直接进入这个文件夹,往下翻会发现一个python.exe 的应用程序,
新项目
我们可以在创建项目的时候直接指定python的环境。
在创建一个新项目时,会弹出这个界面,一开始我是稀里糊涂的一顿瞎填,反正不影响我写代码就行,现在我明白了。
在这个界面,先是对这个项目命名,然后是两个关键的选项
那就是创建新的环境还是使用已有的环境。我们肯定选择已有的环境,
如果之前有过环境,那么点击那个倒三角,会出现上一个项目的环境。
我们点击左边的Add Interpret(添加新环境)
在这里选择第一个,Add local Interpret…,会出现下面的界面
因为我们用的是anaconda里的环境,所以选择左侧的Conda Environment,然后选择环境的目录,
test 环境,安装位置就是D:\anaconda3\envs\test 注意,选择环境下的·python.exe 文件,完成配置
Make available to all projects:如果勾选,那就是以后所有的项目都用这个环境,看情况,我不会勾选的
这样,配置完成
对已有项目配置
就像我这种情况,这个项目我已经有了,但是他的环境错了,我该怎么办
这是我们创建的新项目,我们对这个项目换一个环境。
打开设置,快捷键Ctrl+Alt+S,
选择Project XXX选项下的Python Interpret。
可以点击倒三角选择已经用过的环境,也可以添加新的环境。
那么又到达了这个界面。
总结
这是一篇踩坑记录,本来是早就完成了,结果一直放倒了现在。
我觉得可以记录一下。尤其是conda的命令,
通过写这篇文章,我对python的环境又有一定的了解,所以,这波不亏。
好了,我的学习笔记到此结束。
里面肯定有许许多多的bug,欢迎大家指出!毕竟这样成长更快。
也感谢大家可以看到这样,如果帮到了你,是我的荣幸。
谢谢大家!
|