广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中可选的环境变量设置,Pyt
  • 649
分享到

Python中可选的环境变量设置,Pyt

可选环境变量Python 2023-01-31 04:01:28 649人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

好记性不如烂笔头,看到python Optional Variables这一块,把学习的东西记录下来一. 可选的环境变量设置会写Java Hello World的同学一定知道如何设置环境变量,比如:JAVA_HOME,CLASSPATH等。


好记性不如烂笔头,看到python Optional Variables这一块,把学习的东西记录下来



一. 可选的环境变量设置

会写Java Hello World的同学一定知道如何设置环境变量,比如:JAVA_HOME,CLASSPATH等。


Python中也一样有类似的环境变量,有一些还是可选的(比如:PYTHONPATH, PYTHONSTARTUP等)

  1. 设置PYTHONPATH

这个环境变量有什么用呢?

我们知道在导入模块时(比如:import some_module_name),Python需要在某些路径(即sys.path这个列表中的路径)中去寻找相应的模块,而PYTHONPATH这个变量就是告诉Python,将它的值也加入到搜索路径中(即将PYTHONPATH的值合并到sys.path列表中)。

export PYTHONPATH=/tmp
python -c "import sys; print 'found' if '/tmp' in sys.path else '' "

输出结果是:found

说明/tmp在sys.path中被找到了(即/tmp附加到了sys.path中)


2. 设置PYTHONSTARTUP

如果这个环境变量的值是一个可读的文件,那么该文件中的Python命令会在交互模式启动之前执行。

echo "print 'hello world'" > /tmp/a.py
export PYTHONSTARTUP=/tmp/a.py
python

在启动python交互模式后,会看到有hello world已经被输出了。


3. 设置PYTHONHOME

一般在这个变量没有被设置的情况下,Python中的sys.path会列出一些模块的搜索路径。

# 比如:
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', 
'/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages']

Python模块的搜索路径一般默认是sys.prefix/lib,可以看到很多路径是 /usr/lib/... 这种,其中/usr 就是sys.prefix这个变量的值(windows上可能是你安装Python的目录,比如: C:\Python2.7)。

如果人工指定了PYTHONHOME,那么sys.prefix的值就会被替换。


随便替换PYTHONHOME的值,可能造成Python无法启动,替换前请备份sys.prefix的值



4. 设置PYTHONCASEOK

这个变量只对Windows起效,可以设置为任意的值(比如:SET PYTHONCASEOK=OK)

设置了以后,Python对模块的导入,将忽略大小写(只对用户module忽略大小写,对built-in module还是大小写敏感)



5. 设置PYTHONIOENcoding

看这个名字,IO Encoding可以猜到这个东西是和输入输出有关的。对,这个环境变量的作用就是指定Python程序标准输入输出(stdin,stdout,stderr)的编码。

关于这个东西的运用,请参考:Http://www.soimort.org/posts/118/  太长不看 :D


再补充一些关于encode和decode的要点:

在Python 2.x中,str类型的字符串,都是指string of bytes(二进制流的表示形式),一般来说

1). '...'.decode([encoding_name])是将string of bytes转化成unicode string

运用场景是,从网络或者文件中读取了二进制流,然后将其转化为unicode字符串,便于阅读。


2). u'....'.encode([encoding_name])是将unicode string转化成string of bytes

运用场景是,将unicode字符串转化成二进制流(Java的叫法也称为字节流),然后推向网络或者文件中。


另外,还有两个方法,str.encode和unicode.decode,这两个方法意义不大(几乎很少运用)

"...".encode() 会先默认隐式的用default encoding去decode,即调用"...".decode(sys.getdefaultencoding()) ,然后再继续调用"...".encode()



而u"...".decode()也会先默认隐式的调用u"...".encode(sys.getdefaultencoding()),然后继续调用u"...".decode()



二. 使用pdb模块调试、跟踪脚本

有些时候,需要在没有IDE帮助的情况下,对脚本的运行情况进行调试、跟踪,可以使用Python内置的pdb模块(参考:https://docs.python.org/2/library/pdb.html

一个简单的例子:

对脚本test.py进行跟踪调试

#! /usr/bin/env python

def foo():
    s = 0
    for i in range(3):
        s += i
    print s


if __name__ == "__main__":
    foo()

运行命令:

python -m pdb test.py

显示类似如下所示:

> /tmp/test.py(3)<module>()
-> def foo():
(Pdb) l
  1      #! /usr/bin/env python
  2      
  3  ->    def foo():
  4          s = 0
  5          for i in range(3):
  6              s += i
  7          print s
  8      
  9      
 10      if __name__ == "__main__":
 11          foo()
(Pdb) n
> /tmp/test.py(10)<module>()
-> if __name__ == "__main__":
(Pdb)


(pdb)是调试提示符,在提示符下可以输入命令(具体参考文档)

可以在(pdb)提示符下,查看标量的值,可以使用print 语句打印


常用的简单命令有:

命令全称
简写
命令描述

list
l
列出当前执行脚本的内容(其中有箭头标注当前执行到的位置)

next
n
执行下一步,遇到函数不进入其内部。(相当于IDE中的step over)

step
s
执行下一步,遇到函数进入其内部。(相当于IDE中的step into)

break
b

设置断点,如果不带参数,则列出当前执行脚本中的所有断点(号)。


也可以带参数,比如,执行: b 6)代表在脚本的第6行设置断点,如右边所示,它的断点号是1。

(Pdb) b 6
Breakpoint 1 at /tmp/test.py:6
(Pdb) l
  5          for i in range(3):
  6 B            s += i
  7          print s
  8      
  9      
 10  ->    if __name__ == "__main__":
 11          foo()
clear
cl

清除脚本中的断点。

1)不带参数,会询问是否清除脚本中的所有断点


2)带参数会清除指定的断点。(注意清除的格式)


  • cl(ear) [filename:lineno | bpnumber [bpnumber ...]]

    With a filename:lineno argument, clear all the breakpoints at this line. With a space separated list of breakpoint numbers, clear those breakpoints. Without argument, clear all breaks (but first ask confirmation).


所以,要清除上面设置的第6行的断点,要么使用  cl 1  (清除断点号是1的断点);要么使用  cl test.py:6 (清除test.py中的第6行)


使用 cl 6是错误的,因为目前为止,没有标号是6的断点!!

continue
c
继续执行脚本,直到遇到断点停止。

quit
q
退出调试




That's it!w_0050.gif

--结束END--

本文标题: Python中可选的环境变量设置,Pyt

本文链接: https://www.lsjlt.com/news/187852.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中可选的环境变量设置,Pyt
    好记性不如烂笔头,看到Python Optional Variables这一块,把学习的东西记录下来一. 可选的环境变量设置会写Java Hello World的同学一定知道如何设置环境变量,比如:JAVA_HOME,CLASSPATH等。...
    99+
    2023-01-31
    可选 环境变量 Python
  • Python中怎么设置环境变量
    Python中怎么设置环境变量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python设置环境变量的具体方法在系统变量里找到PATH,双击PATH,在结尾加上 "...
    99+
    2023-06-17
  • Python环境变量设置方法
    Alias Maya中的脚本语言是Mel 和 Python,据说Houdini未来也会把Python作为主要的脚本语言,作为影视特效师,掌握Python语言是必备技能;虽然Maya内置了Python运行时,...
    99+
    2022-06-04
    环境变量 方法 Python
  • python的环境变量如何设置
    在Python中,环境变量可以通过以下方法进行设置:1. 在操作系统中设置环境变量:你可以在操作系统的环境变量设置中添加Python...
    99+
    2023-08-09
    python
  • 如何在Python中设置环境变量?
    在Python中,环境变量是一个非常重要的概念。它们是全局性的变量,可以被不同的程序访问,并且可以在程序运行时被修改。在本文中,我们将学习如何在Python中设置环境变量,并演示一些示例代码。 一、什么是环境变量? 在计算机科学中,环境变...
    99+
    2023-11-01
    path git 数组
  • python,pycharm的环境变量设置方式
    目录python,pycharm的环境变量设置1.右键单击桌面上的"此计算机"图标2.打开系统窗口并单击左侧的"高级系统设置"3.单击系统属性...
    99+
    2023-01-31
    python环境变量 pycharm环境变量 python pycharm
  • 如何在Python中设置PATH环境变量?
    在Python中,设置PATH环境变量可以让我们更加方便地使用第三方库和工具。在本文中,我们将会学习如何在不同的操作系统中设置PATH环境变量,并演示如何在Python中使用这个环境变量。 什么是PATH环境变量? 在计算机中,PATH环境...
    99+
    2023-10-27
    path 日志 shell
  • Linux中bash shell环境变量的设置
    本篇内容主要讲解“Linux中bash shell环境变量的设置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux中bash shell环境变量的设置”吧!别名别名是命令的快捷方式。为那些...
    99+
    2023-06-05
  • MySQL在Windows中设置环境变量
    在桌面选择“计算机”的图标(或者是我的电脑),右键-->属性-->点击“高级系统设置” 然后选择 高级  选项点击环境变量 然后点击新建-> 变量名为MYSQL_HOME 变量值为mysql的安装目录(一定要在系统变量下新建变量...
    99+
    2019-02-06
    MySQL在Windows中设置环境变量
  • Tomcat中怎么设置环境变量
    Tomcat中怎么设置环境变量,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、工具:在配置tomcat之前需要配置好JDK的环境 。JDK配置可以参照博文《W...
    99+
    2023-06-03
  • cmd中如何设置环境变量
    这篇文章将为大家详细讲解有关cmd中如何设置环境变量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。cmd设置环境变量可以方便我们bat脚本的运行,但是要注意的是变量只在当前的cmd窗口有作用(局部生效),...
    99+
    2023-06-08
  • Redhat中怎么设置环境变量
    这篇文章将为大家详细讲解有关Redhat中怎么设置环境变量,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。有些命令的路径没有在PATH环境变量中,可以用echo $PATH命令查询得知,添加路...
    99+
    2023-06-17
  • ubuntu中怎么设置环境变量
    ubuntu中怎么设置环境变量,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一:用于当前终端:在当前终端中输入:代码如下:export PATH=$PATH:&...
    99+
    2023-06-13
  • Windows下设置Oracle10g的环境变量
    Windows下设置Oracle10g的环境变量Windows安装Oracle10g,每次启动em服务,也就是在cmd命令行窗口输入emctl start dbconsole,总是提示“Environmen...
    99+
    2022-10-18
    windows 环境变量 oracle10g
  • 设置mysql环境变量的方法
    这篇文章给大家分享的是有关设置mysql环境变量的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。设置mysql的环境变量的方法:1、依次点击【计算机】、【系统属性】、【高级系...
    99+
    2022-10-18
    mysql
  • Linux设置环境变量的方法
    本篇内容主要讲解“Linux设置环境变量的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux设置环境变量的方法”吧!Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都...
    99+
    2023-06-15
  • java环境变量的设置方式
    这篇文章主要介绍“java环境变量的设置方式”,在日常操作中,相信很多人在java环境变量的设置方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java环境变量的设置方式”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-03
  • 在Linux中配置python环境变量
    在 Linux 中配置 Python 环境变量主要包括两个步骤:找到 Python 安装路径和编辑环境变量文件。以下是具体的操作步骤: 找到 Python 安装路径 首先,需要找到 Python 的安装路径。通常情况下,Python 的默认...
    99+
    2023-10-01
    python linux ubuntu
  • 怎么在centos中设置环境变量
    这篇文章将为大家详细讲解有关怎么在centos中设置环境变量,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。命令操作如下:[root@rh root]# PATH=$PATH:.[root@r...
    99+
    2023-06-10
  • java中如何设置JDK环境变量
    这篇文章将为大家详细讲解有关java中如何设置JDK环境变量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。安装,配置j2sdk:执行j2sdk安装程序,自定义路径,我们的安装路径为:C:j2sdk1.4....
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作