你好,欢迎来到我的博客!今天我想和大家分享一下创建虚拟环境的常用命令、优缺点以及我推荐的方法。
虚拟环境是是一个独立的Python运行环境,它可以让你在不同的项目中使用不同的Python版本和第三方库,而不会造成冲突或混乱。为什么要使用虚拟环境呢?有以下几个好处:
那么,如何创建和使用虚拟环境呢?Python提供了多种方式来实现这个功能,比如venv模块,virtualenv工具,conda工具等。下面我就简单介绍一下python原生自带的venv用法(此段可以跳过看后面):
python -m venv env
。这会在当前目录下创建一个名为env的文件夹,里面就是你的虚拟环境。env\Scripts\activate.bat
。在Linux或Mac系统中,运行以下命令:source env/bin/activate
。这会让你进入到你的虚拟环境中,你可以看到命令行前面有一个(env)的标识。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:
补充2:
补充3:
对于表格的补充解释:
这里我结合新必应的回答,并稍作修改放在了下面,以此来解释为什么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: 这些选项的意思是:
如果你已经装了Python,我建议你只勾选第一个选项,即创建开始菜单的快捷方式。这样你可以避免和其他程序冲突或覆盖。如果你想要使用conda命令,你可以从开始菜单打开conda的命令行或图形界面。如果你想要使用其他程序检测到conda,你可以在那些程序中手动指定conda的路径。
user: 如果我勾选了第二个选项,将conda添加到环境变量可能会有什么后果?
bing: 如果你勾选第二个选项,可能会出现的冲突有:
所以,除非你有特殊的需求,否则不建议你勾选第二个选项。
user: 如果我不选第二个选项,我怎么样才能随时使用conda的包管理功能,能详细说吗?(此处第一种方法最常使用)
bing: 好的,我来给你详细说一下:
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小时,希望喜欢的朋友们多多点赞关注支持!