首页 > 编程语言 >python基础:python命令行选项

python基础:python命令行选项

时间:2023-09-28 23:45:29浏览次数:61  
标签:选项 main 命令行 python py sys 模块 执行

一 前言

安装完python后,通过python关键字我们就可以执行python文件
如下

python xxx.py

上面是很常见的在命令行执行py的方式,但其实python关键字后面还可以加上许多可选选项如
python -c xxxxx
python -m xxxxx

二 python关键字后的可选选项

python [-bBdEhiIOqsSuvVWx?] [-c command | -m module-name | script | - ] [args]

-c

执行 -c后面 command 中的 Python 代码,如
image

执行该选项时,会把执行python命名时所处的目录加到sys.path的开头,上面的话就是路径D:
sys.argv 的首个元素为 "-c"

-m

-m 后面可以跟模块名也可以跟包名,该选项会把执行python命名时所处的目录加到sys.path的开头
sys.argv 的首个元素将为模块文件的完整路径

image

参数是模块名时,模块名不要包含文件后缀.py,python在 sys.path 中搜索指定模块,并作为__main__模块来执行其中的内容,如下
image
执行
image

如上,后面是模块名时,和不用-m加上后缀的效果是一样的,用 -m加上后缀虽然也能执行但是给出了警告
还可以看到,虽然我们有自己的模块名,但python把我们的模块作为__main__模块执行,所以我们经常会看见 if name == "main"的形式

参数是包名时,python会把包里面的__main__模块 作为主模块执行,如下
MyPkg包里面有3个模块
image

image

image

image

执行
image
如上,init.py和__main__.py都被执行了

一些标准模块或者第三方模块也支持用-m选项来执行如

python -m pip install  xxxx
python -m pytest -s -v test_xx.py

其实上面不用前面的python -m 也是可以的如

 pip install  xxxx
 pytest -s -v test_xx.py

不同的是,加上python -m后会,python会把执行命令时所处的目录加入到sys.path中

另外,像鄙人的电脑安装了多个版本的python而没有使用相关的多版本管理工具时 使用python -m 可以执行用哪一个python版本来运行命令
如,电脑上还安装了一个python3.8的版本,设置环境变量后,我把python.exe的的名字作了更改,因为执行python xxx时,这里python其实对应的就是python.exe,有多个版本的python时,就会有多个python.exe,所以要不他们区分开来,如下
image
现在我可以用python3.8版本来执行python
image

这里我的3.8版本没有安装代码里面需要的日志库loguru

在3.8版本安装一下后再执行
image

如果我这里用python -m xxxxx,我这里指的就是用另一个版本的python来执行了

script

script可以是py文件、包含 main.py 文件的目录、包含 main.py 文件的 zip 文件,他们应该是绝对的或相对的文件路径
如常见的 python xxx.py

如果是Python 文件,则把该文件所在目录加入 sys.path 的开头,并且把该文件当作 main 模块来执行。

如果是向目录或 zip 文件,则把脚本名加入 sys.path 的开头,并把该位置中的 main.py 文件当作 main 模块来执行

此选项,sys.argv 的第一个元素就是在命令行中指定的脚本名称
image

执行
image

args

args就是我们放在命令后面的向代码文件输入的自定义参数,如
image
执行
image

标签:选项,main,命令行,python,py,sys,模块,执行
From: https://www.cnblogs.com/MyRecords/p/17736073.html

相关文章

  • Mac部署Python语言json模块(Anaconda)
      本文介绍在Mac电脑的Anaconda环境中,配置Python语言中,用以编码、解码、处理JSON数据的json库的方法;在Windows电脑中配置json库的方法也是类似的,大家可以一并参考。  JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,常用于数据的序列化和传输。而Python中的json库,......
  • 结对项目:python开发四则运算的程序
    项目链接软件工程软件工程链接作业要求作业要求的链接作业目标两人用python实现一个自动生成小学四则运算题目的命令行程序github项目链接github项目链接团队成员姓名学号李金强3121004868赵继业31210048901.PSP表格PSP表格通常用......
  • Python语言特色与版本演进
    1.2.1Python的优点1.集成性Python最令人无法拒绝的优点是开发效率高,这主要归功于其本身具有高度的集成性。Python除了本身具有功能丰富的标准库外,使用他人写好的第三方库也十分方便。2.优雅美观Python使用缩进表征代码段的逻辑结构,而不是使用大括号,这一优点极大地增......
  • 编写运行一个Python程序
    1.5.1基于PythonIDLE运行程序(1)找到安装Python所在的目录。(2)进入子目录./Lib/idlelib。(3)找到并双击idle.bat文件,会弹出idle窗口(此时即表示已进入PythonShell)。1.5.2命令行式交互运行文件(1)打开文本编辑器(如Notepad),编写代码并保存为helloworld.py文件。(2)打开cmd......
  • Python与大数据概述
    1.1.1Python概述Python是一种条理清晰、语法优美的面向对象型程序设计语言,同时,它也是一门解释型的高级语言。Python的设计哲学强调代码的可读性和语法的简洁(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。1.1.2Python的设计哲学——Python之禅Python的设......
  • 编程基础与Python的开发模式
    1.3.1程序设计的概念1.逻辑设计(1)过程的起点是分析并确定需求。(2)从现实中抽象。(3)抽象过后是设计算法。2.程序设计(1)选择编程语言。(2)设计数据结构。(3)设计业务逻辑。(4)选择开发模式。1.3.2程序的生命周期(1)硬件部分。(2)操作系统。(3)汇编语言。(4)高级语言。(5)应......
  • Python解释器和集成开发环境的安装及使用
    1.4.1安装前的注意事项1.Python版本选择Python语言使用者分为Python2和Python3两大阵营。两种版本在部分语法和标准库函数的用法上会有差别,两个版本相互是不兼容的。因此,读者首先需要确定需要使用的Python版本。2.操作系统位数(1)支持的内存不同:32位OS最多支持4GB内存,......
  • Python标准库分享之时间与日期 (time, datetime包)
    Python具有良好的时间和日期管理功能。实际上,计算机只会维护一个挂钟时间(wallclocktime),这个时间是从某个固定时间起点到现在的时间间隔。时间起点的选择与计算机相关,但一台计算机的话,这一时间起点是固定的。其它的日期信息都是从这一时间计算得到的。此外,计算机还可以测量CPU实......
  • 结对项目:用Python实现自动生成小学四则运算题目的程序
    Python实现四则运算程序软件工程计科21级1.2班作业要求https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13016作业目标完成结对项目:四则运算;熟悉团队协作的方法和模式github链接:https://github.com/howdnb/howdnb项目成员信息姓名学号......
  • 结对项目:实现一个自动生成小学四则运算题目的命令行程序
    1作业摘要与结对伙伴介绍1.1作业摘要这个作业属于哪个课程所属课程链接这个作业要求在哪里作业要求链接这个作业的目标<熟悉软件工程流程,把握PSP流程框架,精进测试代码和性能改进的能力>Github链接1.2结对伙伴信息姓名学号彭学智3121004878......