Pycharm初次创建项目时页面环境变量选择

news2025/7/20 17:17:08

Pycharm确实是一个非常不错的Python开发IDE,尤其对于初学者而言。

安装完Pycharm,并未创建任何工程项目时的界面,选择新建一个Pure Python项目,

基于上述界面解读 :

1是新建项目路径可以在Location处选择。

2是Project Interpreter部分是选择新建项目所依赖的python库,第一个选项3会在项目中建立一个venv(virtualenv)目录,这里存放一个虚拟的python环境。这里所有的类库依赖都可以直接脱离系统安装的python独立运行。

8是Existing Interpreter关联已经存在的python解释器,如果不想在项目中出现venv这个虚拟解释器就可以选择本地安装的python环境。

3对应的是:在创建新项目的时候,pycharm提供了三种环境管理工具:Virtualenv、Pipenv,Conda 这三个玩意到底是什么?它们有什么不同?

其实,Conda、Virtualenv、Pipenv都是pyhton包,它们都是环境管理工具(conda还可以做包管理工具),当我们新建一个项目时,通过任何一个工具包都能创建一个python虚拟环境,对该项目设置指定版本的python库和模块。

虚拟环境的作用是啥?‍
      Python 应用程序经常会使用某个特定版本的库或模块,但安装一个 Python 版本可能无法满足每个应用程序的要求。比如应用程序 A 需要一个特定模块的 1.0 版本,但是应用程序 B 需要该模块的 2.0 版本,这两个应用程序的要求是冲突的,安装版本 1.0 或者版本 2.0 将会导致其中一个应用程序不能运行。

      这个问题的解决方案就是创建一个虚拟环境 (通常简称为“virtualenv”),包含一个特定版本的 Python,以及一些附加包的独立目录树。
        不同的应用程序可以使用不同的虚拟环境。为了解决前面例子中的冲突,应用程序 A 可以有自己的虚拟环境,其中安装了特定模块的 1.0 版本。而应用程序 B 拥有另外一个安装了特定模块 2.0 版本的虚拟环境。如果应用程序 B 需求一个库升级到 3.0 的话,也不会影响到应用程序 A 的环境。

虚拟环境和非虚拟环境该怎么选?
      如果你直接在 Pycharm 创建一个项目而不创建虚拟环境,那么你安装的第三方包都会安装到系统 Python 解释器的 site-packages 文件夹下,比如C:\Python\Python39\Lib\site-packages。

       创建越多的项目,安装的库越多。当你又新建一个项目,必定会把 site-packages 下的所有库都导进来,可能有一些库你这个项目根本就不需要,但是又不能删除(因为别的项目有在用),这时候就需要虚拟环境了。

(1)通过 Virtualenv 方式创建虚拟环境

在 Pycharm 创建一个新项目。

  • File 》New Project 》Pure Pyhon,如下图所示:

不同版本的pycharm对应的界面不一样: 

通过 Virtualenv 创建的虚拟目录放在本项目的下的 venv 文件夹中。

如果项目地址是 E:\PycharmProjects\pythonProject

虚拟环境的地址就是 E:\PycharmProjects\pythonProject\venv

虚拟环境中的库 E:\PycharmProjects\pythonProject\venv\Lib\site-packages

图中的 基本解释器 为 系统 Python 解释器,即自行在官网下载并配置好环境变量了的,一般系统 Python 解释器的第三方库都在 site-packages 目录下,比如我的 C:\Python\Python39\Lib\site-packages.

在 Virtualenv 环境中进行包的管理

  • Ctrl+Alt+S 或者 File 》Setting 》Python Interpreter

Virtualenv 一般配合 requirements.txt 文件对项目的依赖库进行管理。

requirements.txt 的格式如下:

 这样的结构让人一目了然,且方便项目移植,当你克隆一个含有 requirements.txt 文件的项目,可以通过相关命令一键下载所有的依赖库。

requirements.txt 文件生成

打开 Pycharm ,Tool 》Sync Python Requirements
根据步骤自动生成一个 requirements.txt 文件。

打开 Pycharm 左下角的 Terminal(终端),输入以下代码:

pip freeze > requirements.txt

根据 requirements.txt 文件安装依赖库

若是导入一个新项目,且含有 requirements.txt 文件,则可根据 requirements.txt 安装所有的依赖库  pip install -r requirement.txt

更多详情参考 https://www.jetbrains.com/help/pycharm/2021.1/managing-dependencies.html

(2)通过 Pipenv 方式创建虚拟环境

 

注意 Pycharm(2021.1.1版本) 没有内置 Pipenv,需要安装。

打开 cmd ,运行以下命令以确保系统中已安装 pip:

pip --version

pipenv 通过运行以下命令进行安装:
pip install --user pipenv

安装成功后在 cmd 输入以下命令:
py -m site --user-site,会返回 pipenv.exe 所在文件夹。
如:C:\Users\admin\AppData\Roaming\Python\Python39\site-packages

为了方便起见,可以将 pipenv.exe 所在文件夹 Scripts 添加到 PATH 环境变量中
"%PATH%;C:\Users\admin\AppData\Roaming\Python\Python39\Scripts"

打开 Pycharm ,创建一个新项目。

File 》New Project 》Pure Pyhon,如下图所示:

 

通过 Pipenv 创建的项目,虚拟环境并不在本项目的目录下,而是在 C:\Users\用户名\.virtualenvs 文件夹下。

Pipenv是 requests 库 的作者写的,因为 requirements.txt 的管理并不能尽善尽美,可能存在一些问题。在 Pipenv 虚拟环境中不用 requirements.txt,Pipfile 是 Pipenv 虚拟环境用于管理项目依赖项的专用文件。该文件对于使用 Pipenv 是必不可少的。当为新项目或现有项目创建 Pipenv 环境时,会自动生成 Pipfile。

Pipfile 的用法如下:
1、新建项目的 Pipfile 文件:

 通过修改此 packages 部分来添加新的程序包依赖项。

[packages]

requests = “*”

每当您修改 Pipfile 文件时,PyCharm 都会建议执行以下操作之一:

 

pipenv lock——将新要求记录到 Pipfile.lock 文件中。

pipenv update——将新要求记录到 Pipfile.lock 文件中,并将缺少的依赖项安装在 Python 解释器上。

(3)通过 Conda 方式创建虚拟环境

 注意,Pycharm(2021.1.1) 也没有内置 Conda ,需要安装。

打开 Anaconda 官网选择适合你电脑的版本即可。

也可在清华大学开源软件镜像站下载,这个速度较快。

打开 Pycharm ,创建一个新项目。

File 》 New Project 》Pure Pyhon,如下图所示:

 

利用 Anaconda 进行虚拟环境包的管理

打开 Anaconda Navigator 图形界面 》Environment 》选需要安装包的环境 》 点绿色按钮 》Open Terminal,在 Terminal(终端)中用 pip 命令安装包即可。

Ctrl+Alt+S 或者 File 》Setting 》Python Interpreter

 Conda 在conda环境下创建虚拟环境,venv文件夹在Anaconda下面,venv里面创建了一个工程目录文件夹;

那么到底这两个该怎么去选择呢,这里建议选择New Environment 可以在Base Interpreter选择系统中安装的Python解释器,这样做的好处有很多。 

  • python项目可以独立部署
  • 防止一台服务器部署多个项目之间存在类库的版本依赖问题发生
  • 也可以充分发挥项目的灵活性

 

 

最终我选择使用下边的方式:

如果使用第二种方式即Existing Environment 新建项目 则是使用python安装路径下的编译器,这样我们pip安装的包就在可以在新建的项目中使用,而且不会将编译器复制一遍。新建出来的项目结构非常简单,不对,是什么都没有,因为他直接使用python安装路径下的编译器了。如图:

然后再这个工程内使用三方包一点问题都没有。 

如果使用的是虚拟环境,如何切换:

2、项目环境切换 - 如何从虚拟环境切换到本地环境

那么,已经不小心掉到了这个【陷阱】里的同学,想将项目从虚拟环境,切换到本地 python 环境,怎么办呢?

在【File -> Settings -> project:你的项目名称 -> python interpreter】中,可以指定当前项目的 python 环境。

点击 Show All 会显示所有的环境,如下图。如果环境路径中带有【venv】表示为虚拟环境

我们要选择本地的 python 环境,而不是虚拟环境。

环境切换成功之后,【External Libraries】下会显示本地 python 环境路径

 

在 pycharm 当中运行时,就会使用本地环境去执行代码了。。

在编写 python 代码时,导包也是从这个 python 环境下面去导。

3、pycharm 中,python 虚拟环境中第三方库管理

一般在开发 python 项目时,会使用虚拟环境。

虚拟环境的目的是,项目与项目之间的 python 环境隔离,项目所使用的 python 第三方库隔离。

如果你的项目当前正在虚拟环境当中,如何进入虚拟环境安装第三方库呢?

虚拟环境中安装和卸载第三方库的 2 种方式。

3.1)在 pycharm 的终端安装和卸载。

第一步:将 pycharm 的 Terminal 终端从 powershell 更换成 cmd.exe。(windows 环境)

这种情况下,我们需要手动执行命令,进入虚拟环境当中。

如果将 windows powershell 换成 cmd.exe,那么打开 Terminal 之后,就会自动进入虚拟环境当中。

这样就不用每次去切换了。

切换步骤:【File - Settings - Tools - Terminal - Shell path - 选择有 cmd.exe 的】

关掉之前打开的 Terminal,重新打开一个。就会自动切换到虚拟环境当中。

第二步:使用 pip 命令进行安装和卸载即可。

3.2)在项目的解释器配置界面安装和卸载第三方库

第一步:进入项目解释器配置界面。

操作步骤:【File - Settings - Project:你的项目名称 - Python Interpreter】

第二步:点 + 进入安装第三方库界面。

要卸载已安装的包

关于第三方库安装时很慢或者读取超时问题处理:

可以在安装第三方库时使用以下国内源:

  1. 阿里云 http://mirrors.aliyun.com/pypi/simple/
  2. 豆瓣(douban) http://pypi.douban.com/simple/
  3. 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
  4. 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

pip 安装命令为:

pip install XXXX -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com




https://blog.csdn.net/qq_35240555/article/details/123474660

https://blog.csdn.net/z97i714/article/details/102633977

https://blog.csdn.net/tomorrowsummer/article/details/90646471

https://www.cnblogs.com/Simple-Small/p/15628903.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/35828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MapReduce

4.1 MapReduce概述 2003年和2004年,Google公司在国际会议上分别发表了两篇关于Google分布式文件系统和MapReduce的论文,公布了Google的GFS和MapReduce的基本原理和主要设计思想。 4.1.1 MapReduce定义 MapReduce是一个分布式运算程序的编程框架&#…

基于GIS的人口统计数据空间化解决方案

​ 人口数据一般以各种级别的行政区域为统计单位,使用表格进行展示。常用的人口分布度量指标是人口密度,即行政区域内单位土地面积上的人口数量,这种以行政辖区为单位进行统计的方法,统计的结果是假定人口均匀分布在整个区域内&a…

Flink的检查点和保存点

在分布式架构中,当某个节点出现故障,其他节点基本不受影响。这时只需要重启应用,恢复之前某个时间点的状态继续处理就可以了。这一切看似简单,可是在实时流处理中,我们不仅需要保证故障后能够重启继续运行,…

2023年系统规划与设计管理师-第二章信息技术知识

1. 软件工程 2. 面向对象 3. 开发模型 4. 开发方法 4.1 敏捷开发方法 4.2 RUP 5. 数据仓库和网络技术 5.1 网络七层结构 5.2 各设备位于哪一次 5.3 各层的协议 5.4 TCP分层 5.5 IPv6 VS IPv4 5.6 IPv4 :A类、B类、C类地址的划分 A类地址的第一组数字为1&#xff5…

【Python+Appium】开展自动化测试(5)appium元素定位常用方法

目录 前言 一,使用uiautomatorview对app页面截图,查看元素属性 二,appium移动端自动化常用的元素定位方法 1,find_element_by_id() 2,find_element_by_class_name() 3,find_element_by_xpath() 三&a…

D-014 温度传感器硬件电路设计

温度传感器硬件电路设计1 简介1.1 温度湿度传感器DHT111.2 温度传感器DS18B202 电路实战3 温度传感器芯片1 简介 温度传感器是指能感受温度并转换成可用输出信号的传感器。温度传感器是温度测量仪表的核心部分,品种繁多。常见的温度传感器有: 1.1 温度…

PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八]

PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八] 原项目链接:fork一下即可:https://aistudio.baidu.com/aistudio/projectdetail/5096910?contributionType1 相关项目参考:(其余图神经网络相关项目见主页) …

你理解的 ANR 监控可能一直是错的……

主要说了几种主流的卡顿监控方式: 通过开一个子线程不断去轮询主线程。原理就是不断向主线程发送Message,每隔一段时间检查一次刚刚发送的消息是否被处理,如果没被处理,说明这段时间主线程被卡住了。 通过使用系统方法 setMessag…

ADAU1860调试心得(3)接口说明以及硬件搭建步骤

这个板子是我做的,我做了 3 路模拟输入,1 路模拟输出,我做硬件设计从来就是怎么省事怎么来,所以就直接照着ADI给我的参考设计来的,关键电路坚决不创新,抄就完了。来看看接口的布局情况:三个绿色…

HttpClient别说话,用心看

官网:Apache HttpComponents – Apache HttpComponents 常见使用场景:1.爬虫(python相对做爬虫专业,但是java也可以做) 2.与其他应用进行交互时候 注意下,不同的HttpClient的jar包版本,API和包路径有明显不同 先使用JDK原生API请求网页 将控制台的复制保存为html文件 双击打…

vscode配置自定义代码片段模板

目录1、打开vscode,使用快捷键打开搜索面板2、输入snippets, 点击 代码片段:配置用户代码片段3、模板配置3.1 vue模板配置3.2 全局模板配置1、打开vscode,使用快捷键打开搜索面板 win: Ctrl Shift P mac: command Shift P 2、输入snipp…

圆通山美食城旅游发展总体规划

目 录 目 录 - 1 - 第一章 项目背景及区域概况 - 4 - 一、项目开发背景 - 4 - (一)项目区位 - 4 - (二)自然环境条件 - 4 - 1.气候 - 4 - 2.植被 - 5 - (三)社会经济条件 - 5 - 第二章 SWOT分析 - 6 - 一、…

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

目录 一、MDK-ARM环境介绍及安装 二、STM32Cube简介及安装 STM32CubeMX安装 加载固件库 ​编辑 三、 STM32F0存储器映射 四、STM32启动文件分析 略 五、GPIO的基本概念及寄存器介绍1 1、GPIO接口简介 2、GPIO功能复用 3、GPIO寄存器介绍 GPIO工作原理框图: …

android 签名打包 Invalid keystore format,配置JDK,报错javax.xml.bind.JAXBException

如果AndroidStudio版本高,把Gradle JDK换成更高的版本,就解决了。如下,由1.8换成11,解决了。 这个是全局配置 单独配置项目 File ---> Project Structure---->SDK Location ---> Gradle Srttings jdk配置 MAC 安装JD…

上海亚商投顾:沪指重返3100点 房地产板块掀涨停潮

上海亚商投顾前言:无惧大盘大跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪大小指数今日走势分化,沪指低开后震荡走高,重返3100点上方,以中字头为首的权重股…

Vue3 按需引入 Element Plus

本文记录博主亲测在 Vite 创建的 Vue3 项目框架中从0开始安装配置按需引入 Element Plus 的步骤 注:以下配置的示例为 Vite 构建的 Vue3 脚手架项目 Element UI 官方指南 安装所需插件 请在项目根目录打开终端分别执行如下安装指令: 1.安装 Element …

实时车载激光雷达感知的点云深度学习

又来卷这个了,此次调查了神经网络中使用的计算表示与其性能特征之间的关系,提出了现代深度神经网络中用于3D点云处理的LiDAR点云表示的新计算分类法。使用这种分类法,对不同的方法家族进行结构化分析,论文揭示了在计算效率、内存需…

Resnet的在指静脉识别应用与改进

一、《基于改进残差网络的指静脉识别算法》_易芮 2020.5.20 由于指静脉具有区分性的特征在于其细节特征,为了减少网络训练过程中的信息丢失,在网络中采用改进的大卷积层以及BottleNeck模块. ResNet网络模型采用残差结构和跳跃连接的方式缓解了随着网络的加深而…

web前端-javascript-相等运算符(说明,== 相等运算, != 不相等运算,=== 全等运算,!== 不全等 运算)

文章目录相等运算符1. 说明2. 相等运算2.1. 当使用来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型然后再比较2.2. undefined 衍生自 null2.3. NaN 不和任何值相等,包括他本身3. ! 不相等运算4. 全…

【无百度智能云与实体经济“双向奔赴”: 一场1+1>2的双赢 标题】

实体经济,已经成为检验科技企业潜力的试金石。 在最近的财报季中,各家大厂的财报里“实体经济”都是关键字眼,已经成为各家心照不宣的共同目的地。 当然,条条大路通罗马。每一家的战略思路和打法都不一样。11月22日,…