关于python创建项目时的一些基础的概念

news2024/11/26 2:47:10

写项目时,通常是,先跑起来,跑起来再说。
很多基础的概念仅仅是知其然而已,
不知道为什么这么写,但这样写是可以跑的(或大家都这么写)(我忘了为啥这么写,但就得这么写),
有感而发,积攒些时间写此文。

今天先写python的,以pycharm为例。

构建项目

新建项目

在这里插入图片描述

要建什么项目

在这里插入图片描述
熟悉编程的人可能知道,左边是长方形的红框内是一些框架,我个人接触比较多的的是vue等前端框架。

Pure Python

意思是纯Python代码,不依赖外部框架,直接用Python编写程序。
优点是轻量级,无需安装额外包,适合小程序。
缺点是没有框架支持,需要自行处理诸如路由、模板、数据库等功能。
适合做一些小工具、脚本、简单的爬虫等。

Django

Python的经典Web框架,拥有众多用户。
基于MVT模式,提供模板、模型、视图、管理后台等功能。
数据库迁移、admin后台非常方便。第三方库丰富。
偏重,对小程序过度设计,存在一定学习成本。
适合中大型网站、内容管理、新闻门户等项目。

FastAPI

最新一代Python Web框架,基于ASGI。
易用性、开发速度和性能表现都非常优秀。
基于Pydantic提供数据验证,使用Type Hints。
自动生成API文档,方便调试。
适合构建高性能、生产可用的RESTful API。
也可用于小型网站应用。
之后的是
Flask - Python的一个微型Web框架,基于Werkzeug和Jinja2,适用于小型项目的开发。
Google App Engine - Google的PaaS平台,可以让开发者轻松地在其上构建和运行Web应用。
Pyramid - Python的一个Web框架,采用模块化和松耦合的设计,适用于大型项目。
Scientific Python - 一系列用于科学计算的Python库,如NumPy,SciPy,Matplotlib等。
Angular CLI - Angular的命令行界面工具,可以方便创建和管理Angular项目。
Bootstrap - 最流行的前端CSS框架,提供了优雅的CSS样式和JavaScript插件。

Pure Python

在这里插入图片描述
Python Interpreter 在PyCharm中构建新项目时的意思是指设置项目使用的Python解释器。
PyCharm让你设置解释器的目的是为了让IDE知道该使用哪个具体的Python环境来运行这个项目的代码。

工具virtualenvpipenvpoetry
虚拟环境创建和管理虚拟环境自动创建虚拟环境自动创建虚拟环境
依赖管理Pipfile和Pipfile.lockpyproject.toml
打包功能支持打包到PyPI
跨平台支持所有平台Windows兼容性问题主流平台
依赖分析可视化依赖图
使用情况常用虚拟环境工具逐渐被poetry取代社区活跃,成为主流最佳实践

Conda提供全面的跨语言环境管理方案,是数据科学领域的首选。其他工具更侧重Python环境和包管理。
以virtualenv 为例

inherit global site-packages

inherit global site-packages
是否让项目的虚拟环境继承全局系统的site-packages。
site-packages是Python用来搜索第三方模块和包的目录。

如果选中该选项:
	项目的虚拟环境会继承系统全局的site-packages。
	项目虚拟环境可以直接使用系统中已安装的第三方库。
	全局安装的库会对项目环境产生影响。
如果不选中该选项:
	项目虚拟环境会独立于全局site-packages。
	需要在项目虚拟环境内单独安装第三方库。
	项目环境和全局系统隔离,不会互相影响。
	通常在开发项目时,不建议选中该选项,而是让项目环境完全隔离。

这样可以避免系统中不同项目的库依赖和版本产生冲突,使每个项目环境保持独立和一致。

Make Available to All Projects

将一个解释器/SDK可供所有项目使用。
当你在PyCharm中配置一个新的Python解释器或SDK时,默认情况下它只能在当前项目中使用。
如果你勾选了 “Make Available to All Projects” 选项,那么这个解释器/SDK就会在IDE的全局范围内可用,可以被所有项目选择使用。

举个例子:

你在项目A中配置了一个Python 3.7的解释器,没有勾选该选项。
则这个解释器只能在项目A中使用。
你在项目B中配置了一个Python 3.8的解释器,并勾选了该选项。
则项目A和项目B都可以选择使用这个Python 3.8解释器。
如果项目C想使用一个全局可用的解释器,可以在项目设置中直接选择,而无需重复配置。
所以,这个选项可以减少重复配置解释器/SDK的工作,将其变为IDE范围内的全局选项。
但同时要注意版本冲突问题。

总之,这个选项可以控制一个解释器/SDK是否对IDE中的所有项目可见和可用。

Previously configured interpreter

之前在该项目中已经配置过的Python解释器。

当在一个PyCharm项目中多次需要配置Python解释器时,IDE会记录下之前配置过的解释器。

然后在重新配置解释器时,可以从"Previously configured interpreter"列表中选择之前用过的解释器,而不需要重新指定路径和详细信息。
这可以简化重复配置相同解释器的过程。

例如:
第一次配置项目时,你选择了Python 3.6 at /usr/bin/python3.6 作为解释器。
后来你切换到了Python 3.7。
此时如果需要重新使用3.6,可以直接从列表中选择"Python 3.6 at /usr/bin/python3.6",而不用手动再找一次路径。
PyCharm会记录这个项目中所有用过的解释器。
所以,这是一种通过记录历史配置来简化重复配置相同解释器的功能。

可以避免每次配置都要手动填写详细信息。
选择一个"Previously configured interpreter"就可以快速切换到之前用过的Python解释器。

Create a main.py welcome script

Create a Python script that provides an entry point to coding in PyCharm
这里是创建一个简单的main.py欢迎脚本

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

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

相关文章

第五章:STL简介

系列文章目录 文章目录 系列文章目录前言什么是STLSTL的版本STL的六大组件如何学习STLSTL的缺陷总结 前言 STL是C的标准模板库,是一个实现算法与数据结构的组件库。 什么是STL STL(standard template libaray-标准模板库):是C标准库的重要组成部分&…

掌握无人机遥感数据预处理的全链条理论与实践流程、典型农林植被性状的估算理论与实践方法、利用MATLAB进行编程实践(脚本与GUI开发)以及期刊论文插图制作等

目录 专题一 认识主被动无人机遥感数据 专题二 预处理无人机遥感数据 专题三 定量估算农林植被关键性状 专题四 期刊论文插图精细制作与Appdesigner应用开发 近地面无人机植被定量遥感与生理参数反演 更多推荐 遥感技术作为一种空间大数据手段,能够从多时、多…

浅谈测试工程化 - 以并发自动化框架为例

目录 前言 测试工程化 一、测试需求分析 二、测试设计 三、测试实现和落地 四、测试维护 扩展 前言 测试工程化是指将软件测试过程中的各个环节进行自动化和标准化,以提高测试效率、质量和可持续性。在测试工程化中,使用并发自动化框架是一个重要…

java版+免费商城搭建+小程序商城免费搭建+Spring Cloud + Spring Boot + MybatisPlus + 前后端分离 + 二次开发

J2EE企业分布式微服务云快速开发架构 Spring CloudSpring Boot2MybatisOauth2ElementUI 前后端分离 1. 鸿鹄Cloud架构清单 2. Commonservice(通用服务) 通用服务:对spring Cloud组件的使用&封装,是一套完整的针对于分布式微…

【洛谷】数字三角形(动态规划)

目录 边读边存 优化成一维数组——倒序没用了&#xff1f; 从上往下存&#xff0c;最大值存在最后一行&#xff0c;最后遍历最后一行得到最大值的写法 边读边存 边读边存&#xff0c;可以有效降低时间复杂度 #include<iostream> using namespace std; int dp[1005]…

git回退到指定版本

git回退到指定版本 1、查找commitId 首先用命令行打开git项目路径&#xff0c;输入git log命令查看commit记录&#xff0c;如下&#xff1a; 在控制台中输入&#xff1a;git log 得到提交记录&#xff1a; 找到commitId是38ada082c229853cf7880da74f584f73266e58a2记录&…

chatGPT这个风口普通人怎么抓住

抓住ChatGPT这个风口&#xff0c;普通人可以考虑以下几个方面&#xff1a; 学习和了解AI技术&#xff1a;了解人工智能和自然语言处理的基本原理&#xff0c;深入了解GPT模型的概念和应用场景。这将帮助您更好地理解ChatGPT的潜力和限制。 寻找创造性的应用场景&#xff1a…

Triton部署之TensorRT-bugfix

一、前言 Triton部署经常会有一些姨妈的错误&#xff0c;个人经验大都为版本不匹配导致&#xff1b; 二、 本人环境 nvidia-smi: 使用的官方镜像为&#xff1a;nvcr.io/nvidia/tritonserver:21.09-py3 使用的onnx版本为&#xff1a;pip install onnx 1.12.0 -i https://pypi.t…

Drools用户手册翻译——第四章 Drools规则引擎(一)核心概念介绍

之前翻译内容一下就是一大节&#xff0c;感觉有点多&#xff0c;我自己看这都费劲&#xff0c;这一章开始步入正题&#xff0c;我就一小节一小节翻译吧&#xff0c;比较容易阅读&#xff0c;修改错误也简单一些。 甩锅声明&#xff1a;本人英语一般&#xff0c;翻译只是为了做…

拼多多API接口,百亿补贴商品详情页面采集

电商API的数据类型 电商API提供的数据种类多样&#xff0c;一般可分为以下几类&#xff1a; 1.商品数据&#xff1a;商品ID、商品名称、商品价格、库存等。 2.交易数据&#xff1a;订单号、付款时间、收货人等。 3.店铺数据&#xff1a;店铺ID、店铺名称、开店时间、店铺评…

SuperMap iServer新增支持FlatGeobuf数据格式,查询渲染性能提升2-3倍

导语 FlatGeobuf是一种地理数据存储格式&#xff0c;采用了二进制编码&#xff0c;相比其他文本或XML格式更高效&#xff0c;可以显著减小文件大小&#xff0c;这使得数据的传输和存储更加快速和高效。 SuperMap iServer 11i(2023) &#xff08;以下简称SuperMap iServer11.1&a…

【代码随想录 | Leetcode | 第三天】数组 | 长度最小的子数组

前言 欢迎来到小K的Leetcode|代码随想录|专题化专栏&#xff0c;今天将为大家带来滑动窗口的分享✨ 目录 前言209. 长度最小的子数组总结 209. 长度最小的子数组 ✨题目链接点这里 给定一个含有 n 个正整数的数组和一个正整数target。找出该数组中满足其和 ≥ target 的长度…

ubantu下的前后端部署

ubantu 远程ssh连接 通过ssh远程连接服务器&#xff0c;传输文件和执行命令 首先更新软件包保证版本最新 sudo apt update安装ssh sudo apt install openssh-server安装完成后默认开启&#xff0c;也可输入命令查看ssh状态 sudo systemctl status ssh如果输入为下图&#…

warning: ignoring JAVA_HOME=D:\JDK; using bundled JDK报错解决

warning: ignoring JAVA_HOMED:\JDK; using bundled JDK报错原因是因为你JDK版本太低或者你的ElasticSearch版本太高降低版本即可、 我的是JDK1.8我下载的是elasticsearch-8.7.0改成elasticsearch-7.6.1就可以了 elasticsearch-7.6.1地址&#xff1a;弹性搜索 7.6.1 |弹性的 …

【动手学深度学习】--13.使用块的网络 VGG

文章目录 使用块的网络 VGG1.VGG块2.VGG网络3.训练模型 使用块的网络 VGG 学习视频&#xff1a;使用块的网络 VGG【动手学深度学习v2】 官方笔记&#xff1a;使用块的网络&#xff08;VGG&#xff09; 1.VGG块 经典卷积神经网络的基本组成部分是下面的这个序列&#xff1a;…

软件测试转车载测试应该怎么做?

1、你要是零基础小白&#xff0c;做车载测试零基础没有经验&#xff0c;可以找到工作吗&#xff1f;没有汽车软件测试经验零基础小白能找到汽车测试的工作吗&#xff1f;对于企业而言&#xff0c;企业比较倾向于录用&#xff0c;就能给公司带来利益的员工来了就能直接上岗&…

公开讲座笔记 | 雷达学报 雷达系统微课 - 第一讲 雷达系统 与 “1+1=2“

原笔记链接&#xff1a;https://mp.weixin.qq.com/s?__bizMzg4MjgxMjgyMg&mid2247486333&idx1&sn05397073a1e645d68e2611c9f9f3aeef&chksmcf51b984f8263092dd4ac6c6fd76817ae022ec8f0cda9a915245156cb4c3eb849091da06fdd1#rd 公开讲座笔记 | 雷达学报 雷达系统…

vue3 和vue2 的插槽写法区别

目录 1. vue2 2. vue3 注意的点&#xff1a; 1. vue2 2. vue3 注意的点&#xff1a; 在data里面定的初值&#xff0c;最好不要直接赋给表格数据。如下&#xff1a; data里面 editRow初始化 给表格tableData 赋值

Spring Boot学习

Spring Boot 配置 同一目录下配置文件优先级&#xff1a;.properties > .yml > .yaml 错误&#xff1a;org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length 1 Caused by: java.nio.charset.MalformedInputException: Inp…

将网页数据读入数据库+将数据库数据读出到网页——基于python flask实现网页与数据库的交互连接【全网最全】

本篇博客的目标是&#xff1a;在网页端输入数据&#xff0c;然后将数据存入数据库。但仅仅“存放”还不满能足需求&#xff0c;因此我们还需要能够取出数据&#xff0c;进行数据的比对分析。 我们将任务分解为4步&#xff1a;第1步用python连接到数据库&#xff0c;第2步用pyt…