《2023详细表格对比》创建虚拟环境的常用命令、用ChatGPT和新必应告诉你为什么Pycharm+Conda是几乎全能的环境管理
你好,欢迎来到我的博客!今天我想和大家分享一下创建虚拟环境的常用命令、优缺点以及我推荐的方法。
虚拟环境是是一个独立的Python运行环境,它可以让你在不同的项目中使用不同的Python版本和第三方库,而不会造成冲突或混乱。为什么要使用虚拟环境呢?有以下几个好处:
- 可以保持你的系统Python环境干净整洁,避免安装过多的库或者版本不一致的问题。
- 可以根据每个项目的需求定制你的Python环境,比如选择合适的Python版本,安装必要的库和依赖,甚至修改一些配置文件。
- 可以方便地在不同的虚拟环境之间切换,比如在开发和测试环境中使用不同的设置,或者在不同的操作系统中运行相同的代码。
- 可以轻松地分享和复制你的Python环境,比如使用requirements.txt文件来记录你的库和版本信息,或者使用venv模块来创建和管理你的虚拟环境。
那么,如何创建和使用虚拟环境呢?Python提供了多种方式来实现这个功能,比如venv模块,virtualenv工具,conda工具等。下面我就简单介绍一下python原生自带的venv用法(此段可以跳过看后面):
- 首先,在你想要创建虚拟环境的目录下,运行以下命令:
python -m venv env
。这会在当前目录下创建一个名为env的文件夹,里面就是你的虚拟环境。 - 然后,在Windows系统中,运行以下命令来激活你的虚拟环境:
env\Scripts\activate.bat
。在Linux或Mac系统中,运行以下命令:source env/bin/activate
。这会让你进入到你的虚拟环境中,你可以看到命令行前面有一个(env)的标识。 - 接下来,你就可以在你的虚拟环境中安装和使用任何你想要的Python库和工具了。比如,你可以使用pip命令来安装requests库:
pip install requests
。或者,你可以使用pip freeze命令来查看你已经安装的库和版本信息:pip freeze
。 - 最后,在你完成了你的项目后,你可以运行以下命令来退出你的虚拟环境:
deactivate
。这会让你回到你的系统Python环境中,你可以看到命令行前面没有(env)的标识了。
自带的venv虽然不用安装额外的程序,但是每次使用都要输入代码,那么有没有一种方法,不使用代码就能创建环境,并且每次打开就能进入环境呢?
答案是:使用pycharm代码编辑软件
先上干货,再详细地解释说明,我为什么推荐pycharm+conda
名称 | pycharm | anaconda | python(以3.11版本为例) |
---|---|---|---|
是否需要额外安装 | 额外安装,并且安装时记得勾选加入路径。 | 额外安装,安装时不要勾选加入路径 | 原生venv,python自带,不用安装 |
优点 | 鼠标点几下就自动创建环境,每次打开项目自动进入环境,不用手动激活 | conda创建的环境可以安装不同python版本 | 创建的任何环境都是基于python3.11,如果项目需要特定的python3.10,将无法更换 |
创建方法 | 新建项目时,点击使用virtualenv或conda创建;打开已有项目时,依次点击文件-设置-项目-python解释器-添加-本地添加-左侧选择virtualenv或conda创建,右侧选新创建环境或指定现有环境 | 安装后点击anaconda prompt,启动后输入命令创建 | win+r 输入cmd回车,在命令窗中输入命令创建 |
其他常用命令 | 根据你使用的conda、venv还是virtualenv方法,在pycharm下方点击终端使用对应命令 | conda常用命令在补充1 | venv常用命令在补充2 , virtualenv常用命令在补充3 |
补充1:
- conda create -n python=:创建虚拟环境,指定python版本
- conda activate :激活指定的虚拟环境
- conda remove --name --all:删除指定的虚拟环境
- conda deactivate:退出当前虚拟环境
- conda list:查看安装了哪些包
- conda env list:查看当前存在哪些虚拟环境
- conda update conda:检查更新当前conda
补充2:
- python -m venv + 路径:创建指定路径的虚拟环境
- 虚拟环境路径+\Scripts\activate:激活指定的虚拟环境(Windows)
- source /bin/activate:激活指定的虚拟环境(Linux/Mac)
- deactivate:退出当前虚拟环境
- rm -rf + 路径:删除指定路径的虚拟环境
- python -m venv --system-site-packages 路径:创建虚拟环境并包含系统的site-packages
- python -m venv -h:显示可用的选项
补充3:
- virtualenv [虚拟环境名称]:创建虚拟环境
- source [虚拟环境名称]/bin/activate:激活虚拟环境
- deactivate:退出虚拟环境
- pip install [包名]:在虚拟环境中安装包
- pip freeze:查看虚拟环境中安装的包
- pip uninstall [包名]:在虚拟环境中卸载包
- rm -rf [虚拟环境名称]:删除虚拟环境
对于表格的补充解释:
这里我结合新必应的回答,并稍作修改放在了下面,以此来解释为什么Conda是全能的?
user: 我想管理多个python解释器,该用什么?
bing: conda。conda可以让你在同一台电脑上安装和切换不同版本的Python,而不需要预先安装。你也可以使用conda来创建和管理虚拟环境,以及安装和更新包。conda是一个非常强大和灵活的工具,你可以用它来处理各种Python项目。
user: 那么venv,virtualenv,pipenv,能做到吗
bing: 不能,这几个工具都不能直接管理不同版本的Python解释器,它们都需要你在系统中预先安装好Python。venv和virtualenv只能创建和管理虚拟环境,pipenv可以在创建虚拟环境的同时管理包,但是它们都不能像conda那样跨平台和跨语言。如果你只需要一个简单的虚拟环境管理工具,你可以选择venv或virtualenv,如果你想要一个集成了包管理的工具,你可以选择pipenv,如果你想要一个全能的工具,你可以选择conda。
user: 安装Anaconda时给了我以下四个选项,该怎么勾选?
-
Create start menu shortcuts (supported packages only).
-
Add Anaconda3 to my PATH environment variable
NOT recommended.This can lead to conflicts with other applications.Instead,use the Commmand Prompt and Powershell menus added to the Windows Start Menu.
-
Register Anaconda3 as my default Python 3.10
Recommended.Allows other programs,such as VSCode,PyCharm,etc.to
-
automatically detect Anaconda3 as the primary Python 3.10 on the system.
Clear the package cache upon completion
Recommended.Recovers some disk space without harming functionality.
bing: 这些选项的意思是:
- Create start menu shortcuts (supported packages only):创建开始菜单的快捷方式,可以让你方便地打开conda的命令行和图形界面。
- Add Anaconda3 to my PATH environment variable:将conda添加到环境变量中,可以让你在任何位置使用conda命令,但是可能会和其他应用程序产生冲突。
- Register Anaconda3 as my default Python 3.10:将conda作为默认的Python 3.10解释器,可以让其他程序,如VSCode,PyCharm等自动检测到conda作为主要的Python 3.10,但是可能会覆盖你已经安装的Python 3.11。
- Clear the package cache upon completion:清除安装过程中产生的缓存文件,可以节省一些磁盘空间,不影响功能。
如果你已经装了Python,我建议你只勾选第一个选项,即创建开始菜单的快捷方式。这样你可以避免和其他程序冲突或覆盖。如果你想要使用conda命令,你可以从开始菜单打开conda的命令行或图形界面。如果你想要使用其他程序检测到conda,你可以在那些程序中手动指定conda的路径。
user: 如果我勾选了第二个选项,将conda添加到环境变量可能会有什么后果?
bing: 如果你勾选第二个选项,可能会出现的冲突有:
- 你的系统可能会无法识别你已经安装的Python 3.11,因为conda会优先被调用。
- 你的系统可能会无法运行一些依赖于特定版本的Python或其他库的程序,因为conda会自动安装和更新一些包。
- 你的系统可能会出现一些不可预知的错误或异常,因为conda和其他程序之间可能存在一些兼容性或安全性的问题。
所以,除非你有特殊的需求,否则不建议你勾选第二个选项。
user: 如果我不选第二个选项,我怎么样才能随时使用conda的包管理功能,能详细说吗?(此处第一种方法最常使用)
bing: 好的,我来给你详细说一下:
- 从开始菜单打开conda的命令行或图形界面,这是最简单的方法。你只需要找到开始菜单中的Anaconda3文件夹,然后点击Anaconda
Prompt或Anaconda Navigator,就可以打开一个已经激活conda的命令行或图形界面。在这里,你可以输入conda install
,conda update
,conda remove
等命令来管理你的包。例如,如果你想要安装numpy,你可以输入conda install numpy
,然后按回车。 - 在项目目录下创建一个
.condarc
文件,这是一种灵活的方法。你可以在你的项目目录下创建一个名为.condarc
的文本文件,然后在里面指定你想要使用的conda路径和环境。例如,如果你想要使用C盘下的Anaconda3,并且使用一个名为myenv的虚拟环境,你可以在.condarc
文件中写入以下内容:
envs_dirs:
- C:\Anaconda3\envs
default_env: myenv
这样,当你在那个目录下打开命令行时,就可以自动激活conda,并切换到myenv环境。在这里,你也可以使用conda install
,conda update
,conda remove
等命令来管理你的包。
- 在代码中使用
os.environ["CONDA_PREFIX"]
和subprocess
模块,这是一种高级的方法。你可以在你的代码中使用Python标准库中的os.environ["CONDA_PREFIX"]
来获取你当前的conda路径,然后使用subprocess
模块来调用conda的命令。例如,如果你想要在你的代码中安装numpy,你可以写入以下代码:
import os
import subprocess
# get the current conda path
conda_path = os.environ["CONDA_PREFIX"]
# construct the conda command
cmd = [os.path.join(conda_path, "Scripts", "conda.exe"), "install", "numpy"]
# run the conda command
subprocess.run(cmd)
这样,你可以在你的代码中直接使用conda的包管理功能。但是,这种方法需要你对Python和conda有一定的了解,并且可能会出现一些错误或异常。
user: 用conda创建的环境,用venv可以进入吗?
bing: 不可以。conda和venv是两种不同的虚拟环境管理工具,它们之间是不兼容的。如果你用conda创建了一个虚拟环境,你只能用conda来进入和管理它。如果你用venv创建了一个虚拟环境,你只能用venv来进入和管理它。如果你想要在不同的虚拟环境之间切换,你需要先退出当前的虚拟环境,然后再进入另一个虚拟环境。
user: 那我用conda创建的环境可以用pip安装包吗?
bing: 可以,但是不推荐。conda和pip是两种不同的包管理工具,它们之间也是不兼容的。如果你用conda创建了一个虚拟环境,你最好用conda来安装和更新你的包。这样,你可以保证你的包之间是一致和稳定的。如果你用pip来安装一些包,你可能会导致你的虚拟环境出现一些问题,比如版本冲突,依赖缺失,或者安装失败。所以,除非你有特殊的需求,否则不建议你在conda的虚拟环境中使用pip。
汪~以上就是我今天想要分享的内容啦,应该是CSDN最详细的环境使用和对比文章了,使用pycharm+conda/virtualenv可以让我们快速为项目配置环境,因此真心推荐大家使用这种方式。最后,本次博客写完到多次修改累计用时7小时,希望喜欢的朋友们多多点赞关注支持!