首页/文章/ 详情

Python编程环境配置

4月前浏览2529

前言

很久没有更新内容了,过去的一段时间我也经历了一段很艰难的日子。多年来我一直自认是一个勤勉敬业、关心学生发展的老师。但是发生的一些事情让我很难过,甚至是永远都无法弥补的遗憾。作为一个做数值计算和程序开发的研究组,我个人加班到凌晨是家常便饭,几乎所有的核心代码都是我写的。对研究生我自认为也算尽力了,无论是给学生发助研费还是手把手的学术指导,但是我依然看不到任何希望。我时常不断地反省,也许我哪里做的确实不好吧。

感谢好友谢院长的支持,给我送来愿意做研究的同学。让我重新觉得可以挑战一些有价值的事情了。好了,日子还要向前。为了方便新同学的学习,我来写一下我们组对Python环境配置和开发方面的一些经验。

软件

Python的集成开发环境很多,但是我的研究组采用的方案是:Miniforge + PyCharm。Miniforge是开源软件,可以视为Anaconda的替代版本吧,Anaconda实在是太大了。Miniforge的优势之一是可以创建不同版本的Python环境,满足Python开发版本依赖的问题。

PyCharm就不用多介绍了,Python开发最流行的IDE之一了,对高校学生异常友好,可以通过学生或者教师账号申请全家桶。下载链接如下:

Miniforge:https://github.com/conda-forge/miniforge/releases

PyCharm:https://www.jetbrains.com.cn/pycharm/

安装使用

(1) 下载对应的软件版本,Miniforge一般选择Windows-x86_64版本,PyCharm就直接点按钮下载就好了

(2)双击一路Next安装完成

(3)设置适合的Python版本和库

a) 搜索minifore会弹出来最佳匹配应用

b) 创建开发环境

miniforge程序自带了额一个base的Python环境和对应的解释器,包管理等一套。这个一般都比较高,都是3.10以上了,假如我们的程序Python版本是3.9,那么我们就可以创建一个3.9版本的环境,假如我们把这个环境叫study,同时给这个环境安装一些常用的库,那么具体操作示例如下:

conda create --name study python=3.9

conda activate study

conda install numpy scipy

(3)设置PyCharm的Python解释器

简单地说,Pycharm可以视为一个好用的Python文件编辑器,自带了Python解释器的,但是由于miniforge的一些优势,我们需要把Pycharm的解释器设置为miniforge的Python解释器。

(4) 程序运行设置

我们写程序的时候,开始经常会报错,我们可以通过断点调试。此外我的经验是可以通过修改选项,勾上Run with Python Console,这样就能让计算的变量数据呈现出来,类似于Matlab那个效果了。

后记

对我的研究生,我想说:研究注定是要付出辛苦的,我会一直陪伴你们解决遇到的问题,希望你们能主动多找我。无论怎样,我希望你们能热爱自己的生活。每当我没有联系上你们的时候,我都会默默地祈祷你们平安快乐。





来源:数字孪生与工程计算
ACTMATLABpythonUM
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-14
最近编辑:4月前
Rockman
博士 | 副教授 十年饮冰
获赞 11粉丝 46文章 16课程 0
点赞
收藏
作者推荐

【仿真技术】简单的极限平衡计算的编程实现

引言笔者从教时间不长,只有三四年,每一次教学都能从中获取很多新的发现。正如徐芝纶老先生所言“学无止境、教亦无止境”。极限平衡是土力学中计算边坡安全系数最常用的方法,笔者在教学过程中给学生编写了一个简单的极限平衡计算程序,程序非常简单,只有几十行。后面有时间的话会加入图形界面进行进一步完善。计算采用最经典的瑞典条方法,具体原理公式如下: 图1 瑞典条方法计算基本原理算例介绍如下图所示有一个均值边坡,尺寸如下图。假定土体的重度为23.5kN,土体的黏聚力25kPa,内摩擦角30°,假定圆弧的圆心坐标为(10,40),半径为30m,试计算该滑弧对应的安全系数。 程序实现本程序在几何图形计算中使用了shapely库,shapely是一个python包,用于设置平面特征的理论分析和操作(通过python的 ctypes 模块)来自著名和广泛部署的地理类库的功能。本程序可以为三个部分:1. 计算滑坡体的几何信息:采用圆心和半径绘制圆,然后将这个圆与边坡多边形相切,交集部分即为滑坡体,代码如下:polygon = Polygon([[0, 0], [50, 0], [50, 40], [40, 40], [10,10],[0,10], [0, 0]])circle = Point(center[0], center[1]).buffer(radius)pintersect = polygon.intersection(circle) 2. 将滑坡体分条:我们提供的思路是将滑坡体x方向的最大和最小值找出来,然后绘制一系列不同x坐标的竖线,通过计算竖线与滑坡体的交点,得到每一个滑块的信息。具体代码如下:''' get the x coordinates limit the pintersect '''xlimit = pintersect.bounds[0], pintersect.bounds[2]ylimit = pintersect.bounds[1], pintersect.bounds[3]'''slice the pinterset into 10 slices '''slice_num = 20xstep = (xlimit[1] - xlimit[0])/slice_num''' get the slices using intersction'''slice_points = []for i in range(slice_num+1): line_tmp = LineString([(xlimit[0]+xstep*i, ylimit[0]), (xlimit[0]+xstep*i, ylimit[1])]) pts = pintersect.intersection(line_tmp) slice_points.append(pts.xy) 3. 计算该滑面对应的安全系数:这一块稍微麻烦,需要把每一个滑块上的物理量算出来,然后用公式(1)计算边坡的安全系数,这一块代码略长一点,有兴趣的同学可以自己看代码。最终实现的效果如下所示,边坡的安全系数Fos = 1.13。其实这个程序的计算代码并不长,但是把计算过程绘制出来还是毕竟麻烦的,采用了Matplotlib图形库,有心的朋友可以仔细看看代码呀。 图2 程序初步运行结果END来源:数字孪生与工程计算

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈