美文网首页
Python摸索开始

Python摸索开始

作者: 三月木头 | 来源:发表于2023-08-11 12:10 被阅读0次

灵魂拷问,为什么天选之子是它 ???

  • 主要是想做个量化工具,看了看招聘渠道需要会Python和C,据说Python用来做数据分析最方便快捷,里面存在非常多成熟的数据分析用的库。

思考

Q: 那我怎么开始认识Python呢?我对它不是很熟,半年的时候简单摸索了一下,后面有事情就暂停摸索了。
A: Python是解释型语言。
补充A:大家好奇不好奇,高级语言是怎么被机器执行的?机器只能识别机器语言0、1这样源码或者汇编语言movl $5 、addl这样的,那高级语言能被执行就需要翻译成这样的语言,既然是翻译那就会有提前翻译和执行期间翻译。不同翻译时机就造成了两种名词:编译型语言(提前翻译好)、解释型语言(执行代码的时候翻译),关于两者的优劣就不说了自己查下就好,无非就是编译型语言提前翻译好执行效率会更高一点。解释型语言扩平台好,只要平台提前安装了解释器就可以执行
A:再补充一点,是不是有人对动态语言类型静态语言类型也有些懵。顺带解释下哈,针对静态语言、动态语言是根据数据类型校验时间而言的。执行前,也就是编译时候对数据类型做了校验,明确要求了数据类型,这就是静态语言也是强类型语言。运行期间才做数据类型校验的,开发时候不用指定数据类型的是动态语言比如(JavaScript、Python、PHP)。通常情况下编译型语言是静态类型,解释型语言是动态类型语言。但是也有特殊的,比如swift语言就很怪,是编译型语言+动态类型的混合体,C#和Java反而是解释型语言+静态类型

Q:既然明白了Python是解释型语言,那就需要安装解释器才能用喽,怎么安装解释器呢?
A:解释器其实就是安装Python安装包就好了,Mac默认的是2.7版本,当下流行的是3.11版本,可以安装多版本。win执行的时候可以用py选择版本执行。

Q:那我需要用什么平台来开发Python的项目呢?
A:可用平台比较多,常用的PyCharm、VS等,我还是选择了pycharm,主要是看着这个跟Python开发看起来就更般配一些,具体有什么区别也没对比。。

Q:Python开发中的包管理工具是什么?
A: 在语言开发中,任何语言几乎都会有自己的包管理工具。Python中的包管理工具是pip,可以安装对应的pip3版本,查询是否安装了可以通过pip -V 或者 pip3 -V

Q:我写的Python程序如有运行??
A:用编译器运行即可,进入到指定目录,然后pyhton xxx.py即可运行该文件。所以我们只要安装好了解释器环境,即可终端运行程序。当然PyChram里面的终端也可以运行。

Q:我们如何打包自己的项目?
A:我们使用Cpython打包exe文件。Cpython是C语言写的python的代码解释器,将python代码转换成计算机识别的字节码。通过cpython可以直接将Python代码编译成exe文件而不需要安装Python环境,实现真正独立运行。其次我们需要通过PyInstaller将代码打包成可独立执行的工具,可以通过PyInstaller打包成不同平台的可执行程序(Win、Mac、Linux)。

Q:执行一遍通过CPython的打包吧
A: 通过CPython打包exe

Q: 我们如何引入三方库?
A: 我们通过pip管理包,安装:pip install xxx 查询当前都有哪些包:pip list
查看某个包的具体信息:pip show xxxx 卸载某个包:pip uninstall xxxx

Q: 我们如何调试程序?
A:我在win上面开发的,使用的VSCode开发工具,左侧有个debug按钮,项目第一次时候需要再最上面选择下Python File Debug .....的选项即可

开始第一个hello python的程序创建吧

  1. 打开开发PyCharm工具,点击File选择创建项目,然后选择好解释器进行创建即可


    截屏2023-08-05 下午6.54.04.png
截屏2023-08-05 下午6.56.54.png
  1. 编写一个小程序,然后执行吧。找到项目右击new--> file 创建.py的文件,文件内容写print("hello python") ,然后工具下面的终端进入对应的文件件运行pyhton xxxx.py即可。

Q:Queue队列怎么回事?
A: 任何语言都绕不开性能,异步、同步、线程安全问题

问题汇总

Q: python执行时如何选定某个版本执行?
A:
Mac工具: python2 xxx.py 或者 python3 xxx.py
Win工具: py -2.7 .\xx.py 或者 py -3.11 .\xxxx.py

Q: 开发中常见的if __name__ == ‘__main__‘是什么?
A:通常一个.py的项目文件有两种运行情况,一种是直接运行此文件,一种是被引入其他文件中执行。此处的判断就是对这种情况进行的。
如果直接运行此文件则__name__ == 是 __main__,如果是此文件被导入其他文件中执行,则__name__ == 包名.文件名,这个名称是有变化的,所以此处的判断是对直不直接运行此文件的影响。直接运行此文件,则此处逻辑代码执行,如果被导入其他文件运行的代码,则此处文件不被运行。

Q:经常看到 try: with xxx 和 except: 这些有什么特点呢?
A:此处可以单独开一篇文章介绍

Q: 如何写内容到一个文件里面
A:用到open()函数,里面参数具体使用参照里面文档吧。第一参数是文件名、写入读取的类型、内容编码格式。打开后通过json的fump函数写入即可,然后关闭函数。

with open(filename, 'a', encoding='utf-8') as fileObj:
        json.dump("写入测试", fileObj, ensure_ascii=False)
        fileObj.write('\n')
fileObj.close()

Q: 刚看到一个with as 的语法,这是什么?
A: Python中with as 语句

Q:ModuleNotFoundError: No module named 'xxx'
A: 这是在Win环境下,安装了Python3 到D盘中,项目在桌面的C盘中,刚开始pip install的三方包后,正常运行了几次,然后突然报上面错误。这就是包没有被识别。也就是说项目运行时候需要找到Python解释器但是在当前路径下没有找到,那么我们先确定下我们安装的包是存在的。
那么Python代码执行逻辑是什么呢?
我们import模块之后,代码执行的时候,是先去sys.path里依次搜索,直到找到对应模块
那么搜索模块的sys.path里面的路径是怎么来的呢?
A:主要是前两种

  1. 一是系统的PYTHONPATH变量,所以我们可以通过设置此变量来改变Python的默认搜索位置
  2. sys.path的另一个来源就是当前执行程序所在目录。注意是文件所在的目录不是文件路径
  3. 第三就是win系统C盘上的一些python路径,乱七八糟的无啥用。

那我们就知道怎么解决这个问题了,两个方面,一个是修改系统的PYTHONPATH变量,另一方面通过 sys.path.append添加模块路径

一、先检查下Pyhton的搜索路径
先看下当前模块路径都有哪些
再看下当前当前PYTHONPATH变量是什么
再找到当前安装的那些三方模块在哪里
其次就是添加这些路径即可

import sys
print(sys.path)
print(os.environ.get('PYTHONPATH'))

打印的是None,说明项目本身就找不到Python的解释器,无法运行。
二、pip list 查看包确实存在
三、pip show xxxx会把路径给你打印出来 d:\tools\python\python3\lib\site-packages(1.6.1),这样我们就明确知道包所在的具体位置。
三、添加Win的Python环境:

方法1:通过sys.path.append()函数 虽然是python里面最常用的,但是不推荐

import sys
sys.path.append('d:\tools\python\python3\lib\site-packages')

添加完成后可以通过
print(sys.path)来查看是否添加成功

此处常用是由于通常项目都是一个本地电脑运行一个项目,如果同一个环境需要多个环境来回切换,并且项目类似,那么还是建议修改系统的PYTHONPATH变量来修改模块扫描路径。

很奇怪的是,我明明导入成功了site-packages,但是还是无法识别到websocket这个模块
很神奇的事情,那就是明明导入到了模块的搜索路径中,但是有时候项目重新打开时候会失效,所以推荐第二种。

重点推荐】方法2:修改系统PYTHONPATH变量路径,不同环境Win和MacOS还有些区别,
MacOS环境可以选择用命令行。

export PYTHONPATH= d:\tools\python\python3\lib\site-packages:$PYTHONPATH

Win环境可以手动添加:搜索环境变量,然后在系统变量模块里,点击新建
添加。当然在用户环境编辑(推荐),或者在系统环境编辑都可以。但是【问题出现】加入后路径变量后,sys.path还是无法显示出添加的路径导致导入的模块还是不能识别,分别在path和PYTHONPATH都添加了路径,但是就是无法加载识别出来,真是奇葩了。。。。

重新排查一遍问题:

where python

出现两个python,一个是我自己安装的D盘里的,一个是C盘WindowsApps里面的,真是奇怪。

import sys;print(sys.executable)

查看我们的python解释器路径,理论上同where的路径一致才对。但是只是同D盘路径一致。

在win搜索Python 发现还同步再微软商店下载了Python3.11,卸载了这个。然后重启后面发现添加成功了。。。。。。
记得添加PYTHONPATH路径后,重启。对了,还有一个细节需要注意,就是VSCode的右下角突然可以给选择解释器了,选择对应位置的Python解释器即可。

FillNotFoundError
问题描述:
文件A.py引用了文件B.py,然后B模块又引用了C模块,C模块中识别json文件时候通过debug模式无法识别,但是直接run的话没问题。。。
解题思路:
其实还是文件路径无法找到的问题。那我们只需要导入正确文件路径即可。
一、找到正确路径
二、更改当前正确的工作目录即可
我们需要用到

# 查看当前工作目录
os.getcwd()

#正确工作目录
sys.path[0]

#添加争取工作目录到当前文件
os.chdir(sys.path[0])

可以通过获取当前工作目录对比添加前后变化

异常问题解释

  • except的时候出现Too broad exception clause
    A:问题太宽泛导致的,最好明确指出是什么类型的问题需要捕捉

参照文献:
https://blog.csdn.net/lcg910978041/article/details/50696196

https://blog.csdn.net/DALEONE/article/details/122267822

python中路径什么意思_python基础教程详解Python中的路径问题

ModuleNotFoundError:如何解决Python找不到模块错误?

ModuleNotFoundError: No module named 'xxx'可能的解决方案大全

如何修改Python的模块搜索路径?

Python环境变量配置不了 python设置环境变量不生效

相关文章

  • 开启我们的自学之路吧!

    我今年寒假的时候,开始自学Python,深深的被python迷住。 这一两个月以来,我一直在自己摸索学习包括pyt...

  • 从零开始,摸索学习

    文/浪迹天涯 昨天写下第一篇自媒体文章,原本打算按时发布出去,检验一下写作水平,却发现需要配...

  • Homebrew安装python笔记

    近期要学习python的使用,第一步当然就是安装python软件。因为是Mac小白,网上看了很多文章后终于摸索出了...

  • python自动化运维开发

    1.就看了本python简明教程,然后就开始摸索着写,后来混迹各大论坛,看看别人发的代码以及一些框架的源码,自己仔...

  • 我不是为了输赢,我就是认真

    四百零四小时了,前两百小时是摸索,玩了一下R和Python;后两百小时开始系统学习Spark。我心里有些恐惧与兴奋...

  • 写作从慢慢摸索中开始……

    很多人都是从不会写到慢慢能写一千多字甚至更多。是因为他们文化水平比较高吗?又或者说他们知识渊博? 不,并不是,是因...

  • 超详细的Python实现微博模拟登陆,小白都能懂

    原文来自:公众号"速学Python" 前言 最近由于需要一直在研究微博的爬虫,第一步便是模拟登陆,从开始摸索到走通...

  • Ubuntu 20.04.2.0 Python 安装与配置

    因为自己在做一个小项目,所以要用到Python和PyQt5。可惜没有去上学校Python的课程,所以只能自己摸索配...

  • 手绘之路

    从开始摸索速写,到尝试上色

  • Linux | Python 命令行

    之前学过一段时间python,发现python在处理生物学数据方面非常强大。最近在处理数据的过程中,最近摸索出来的...

网友评论

      本文标题:Python摸索开始

      本文链接:https://www.haomeiwen.com/subject/sznvpdtx.html