目录
1. 使用 conda 创建并进入虚拟环境
2. pycharm 选择 interpreter 的时候,在虚拟环境中找不到 python.exe
3.(py & python)ModuleNotFoundError: No module named 'XXX'
4. AttributeError: module ‘tensorflow‘ has no attribute ‘python_io‘
5. ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly
6. conda 与 pip 的区别
7. (conda & pip) ModuleNotFoundError: No module named ‘XXXX’
1. 使用 conda 创建并进入虚拟环境
Anaconda及Pytorch的下载与安装
https://www.bilibili.com/video/BV1XU4y1k74L/?spm_id_from=333.999.0.0&vd_source=9dc4a107b744cb80864432896644a121
pycharm社区版下载与配置(pytorch环境的解释器设置)
https://www.bilibili.com/video/BV1MW4y1Y7N6/?spm_id_from=333.999.0.0&vd_source=9dc4a107b744cb80864432896644a121
(base) C:\Users\57879>d: # 进入 D 盘
(base) D:\>cd anaconda3 # 进入 anaconda 文件夹
(base) D:\anaconda3>cd envs # 进入虚拟环境文件夹
(base) D:\anaconda3\envs>conda create --name pytorch python=3.6 # 创建名为 “pytorch” 的虚拟环境,并安装版本为 3.6 的 python (等号两端不要有空格)
(base) D:\anaconda3\envs>conda activate pytorch # 激活虚拟环境,这里的 “pytorch” 可以替换为你自己建的虚拟环境的名称
(pytorch) D:\anaconda3\envs>python # 进入 python 模式
>>> import six # 未报错,说明此 package 存在
>>> import adadahifhfihi # 报错,说明此 package 不存在
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'adadahifhfihi'
>>> exit() # 退出 python 模式
2. pycharm 选择 interpreter 的时候,在虚拟环境中找不到 python.exe
3.(py & python)ModuleNotFoundError: No module named 'XXX'
运行 *.py 文件时,错误提示 ModuleNotFoundError: No module named 'six'
在出错点是 import six
但是我明明有安装 six 这个 package 啊。这个问题折磨了我好久,最后发现
(pytorch) D:\anaconda3\envs>py
Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
(pytorch) D:\anaconda3\envs>python
Python 3.6.13 |Anaconda, Inc.| (default, Mar 16 2021, 11:37:27) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
我一直用的是 py *.py 运行的 code,所以一直报错。当我使用 python *.py 运行代码时,上面的错误提示没有了。
我建立的虚拟环境 pytorch 是 3.6 的 python,所有的包也是安装在 pytorch 这个虚拟环境中。这个 3.9 的 python 应该是在安装 pytorch 这个 package 的时候自动安装的。
py 和 python 两者的区别是:(https://blog.csdn.net/weixin_44981444/article/details/110730662)
- python 是所有版本的 python 都有的,输入 Python,其实运行的是 python 安装目录的下的python.exe 文件。而 py 是 python3.3 后才引入的 python 的启动器。在 python3.3 前,输入py 是不能启动 python 的。
- 两者所在的路径不一样,python 在 python 目录下面,比如 C:\Python36,而 py 代表的 py.exe 文件则在 windows 目录下面 , 也就是: C:\windows 。
- 两者的功能有所不同,py 的功能是强于 python 的,在 py 后可以指定所要启动的 python 版本,比如 py -2 会启动 python2.X 版本,但 python -2 则会报错。
- 如果系统有多个 python 版本的话,py会启动新版本的 python,但 python 则会根据系统的环境变量,选择最上面的一个版本运行。
- py 运行带有 #! 开头的脚本时,会识别其指定的版本信息。
4. AttributeError: module ‘tensorflow‘ has no attribute ‘python_io‘
https://blog.csdn.net/sy20173081277/article/details/122989297
出错现象:tf.python_io.XXX
问题分析:这个问题是 TensorFlow 版本不同引起的,tensorflow2 中并没有 python_io 这个模块了,所以就需要在 tensorflow2 环境下调用 tensorflow1 版本的模块。
解决办法:在 tensorflow2 环境下使用 tf.compat.v1.python_io.XXX,就可以实现 tensorflow1 中的函数或者功能模块调用了
开心,可算能跑通数据集处理代码了
5. ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly
安装 OpenCV 的时候报错,查资料可能是和 python(我安的 3.6 版本的)版本冲突。想着升级到 3.8 版本试试。直接卸载可能有残留,所以覆盖安装就好。
(pytorch) D:\anaconda3\envs>conda install python==3.8
报错了,与 pytorch 的版本冲突了。无奈,只能删除环境,重新建立环境,然后重新安装。
(pytorch) D:\anaconda3\envs>conda deactivate # 退出激活的环境
(base) D:\anaconda3\envs>conda remove -n pytorch --all
# 彻底删除已建立的环境 “pytorch”
(base) D:\anaconda3\envs>conda env list
# 查看环境是否删除,记得去 envs 这个文件夹里把 pytorch 这个文件夹删除,不然无法创建同名环境
(base) D:\anaconda3\envs>conda create -n pytorch python=3.8
# 建立新的名为 pytorch 的环境,并安装 3.8 版本的 python
(base) D:\anaconda3\envs>conda activate pytorch # 激活环境
(pytorch) D:\anaconda3\envs>python # 查看 python 版本
>>exit() # 退出 python
(pytorch) D:\anaconda3\envs>conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia # 去官网选择适合自己的 pytorch 版本
# 如果想要安装 GPU 版本的 TensorFlow,可以用如下命令。但是 tensorflow 和 pytorch 最好安在两个环境里
conda install tensorflow-gpu
6. conda 与 pip 的区别
https://blog.csdn.net/taoqick/article/details/56284364
- Conda和pip通常被认为几乎完全相同。虽然这两个工具的某些功能重叠,但它们设计用于不同的目的。 Pip是Python Packaging Authority推荐的用于从Python Package Index安装包的工具。 Pip安装打包为wheels或源代码分发的Python软件。后者可能要求系统安装兼容的编译器和库。
- Conda是跨平台的包和环境管理器,可以安装和管理来自Anaconda repository以 Anaconda Cloud的conda包。 Conda包是二进制文件,徐需要使用编译器来安装它们。另外,conda包不仅限于Python软件。它们还可能包含C或C ++库,R包或任何其他软件。
- 这是conda和pip之间的关键区别。 Pip安装Python包,而conda安装包可能包含用任何语言编写的软件的包。在使用pip之前,必须通过系统包管理器或下载并运行安装程序来安装Python解释器。而Conda可以直接安装Python包以及Python解释器。
- 另一个区别是conda能够创建可以包含不同版本的Python或其他软件包的隔离环境。在使用数据科学工具时,这非常有用,因为不同的工具可能包含冲突的要求,这些要求可能会阻止它们全部安装到单个环境中。 Pip没有内置的环境支持,而是依赖于virtualenv或venv 等其他工具来创建隔离环境。 pipenv,poetry和hatch wrap pip和virtualenv等工具提供了统一的方法来处理这些环境。
- Pip 和 conda 在如何实现环境中的依赖关系方面也有所不同。安装包时,pip会在递归的串行循环中安装依赖项。没有努力确保同时满足所有包的依赖性。如果较早安装的软件包与稍后安装的软件包具有不兼容的依赖性版本,则可能导致破坏的环境。conda使用可确保满足环境中安装的所有包的所有要求。此检查可能需要额外的时间,但有助于防止创建破坏的环境,前期关于依赖关系包的元数据是正确的。
- 考虑到 conda 和 pip 之间的相似性,有些人试图将这些工具结合起来创建数据科学环境也就不足为奇了。将 pip 与 conda 结合的主要原因是有些包只能通过 pip 安装。 Anaconda创酷提供超过 1,500 个软件包,包括最流行的数据科学,机器学习和AI框架。这些,以及包括 conda-forge 和 bioconda 在内的数据通过 Anaconda 云提供的数千个附加软件包,可以使用conda 进行安装。尽管有大量的软件包,但与PyPI上提供的150,000多个软件包相比,它仍然很小。有时候需要的包没有 conda 包,但在 PyPI 上有,可以用pip安装。
7. (conda & pip) ModuleNotFoundError: No module named ‘XXXX’
问题描述:在虚拟环境 pytorch 下,当使用 conda install XXXX 安装某个包后,使用 impot XXXX 会出现如上提示。
使用 conda list 命令可以发现 XXXX 这个包已存在,但是使用 pip list 发现没有这个包。当使用 pip install XXXX 后,pip list 存在这个包,import XXXX 也不再报错。
问题解决:https://blog.csdn.net/nyist_yangguang/article/details/111304014
- Conda 除了虚拟环境下的还有关联文件下的
- Pip只有当前虚拟环境下的
当关联环境下有这个包,再用conda在其他虚拟环境下下载该包,就会直接关联,不用下载
比如说 base 环境下有包,在另一个环境下下载同样的包,就会关联上,不用真的下载,直接复制过去或者关联即可
验证得到:pip 下的 list 是 conda 下 list 的子集