您当前的位置: 首页 >  搜索

顺其自然~

暂无认证

  • 4浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

python路径/模块搜索路径/当前目录/site模块详解(tcy)

顺其自然~ 发布时间:2022-01-05 15:59:22 ,浏览量:4

模块搜索路径

1.1、说明:

  • 导入模块解释器首先搜索内置模块;
  • 如无将在变量sys.path 给出目录列表中搜索,列表索引先后决定搜索优先级。

1.2、sys.path列表优先级排序:

  • 第一优先级为当前执行脚本的目录(或当前目录)
  • 第二优先级为PYTHONPATH;
  • 第三优先级为安装位置。

1.3、动态增加路径 --临时生效

sys.path.append(r'/主目录/filename')#加在sys.path的最后
sys.path.append(os.path.expanduser(r'/主目录/filename'))
sys.path.insert(0,PATH/filename)    #加在sys.path的最前

1.4、改变当前路径

os.chdir(r'D:\atcy')
os.chdir(sys.path[0])#改变当前路径
print(os.path.abspath('test.py'))# 文件操作现在是相对于D:\atcy #D:\atcy\test.py

备注:路径拆分合并

path,math=os.path.split(os.path.realpath(__file__))# ('D:\\atcy', 'test.py')
a=os.path.join(path,math)                          # D:\atcy\test.py
2.当前目录,脚本目录

2.0、os.curdir

os.curdir=='.'     #True

2.1、获取当前目录

a01 = os.getcwd()          #主程序绝对路径(子程序相同) # D:\atcy\atcy 和平台有关
a10 = os.path.abspath('.') #主程序绝对路径(子程序相同) # D:\atcy\atcy
a13 = os.path.realpath('.')
# ===================================================================================

2.2、os.path.dirname获取当前目录或上级目录

os.path.dirname(r'D:\atcy\atcy')          #返回上级目录'D:\\atcy'
os.path.dirname(r'D:/atcy/atcy/a_path.py')#返回当前目录 'D:/atcy/atcy'
a07 = os.path.dirname(a05)                #当前执行脚本的上级目录--主程序:D:/atcy 子程序:D:/atcy/atcy
a21 = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))#当前执行脚本的上级目录(结果同上)

2.3、__file__当前执行脚本路径+文件名

a02 = __file__                  #当前执行脚本路径--主程序: D:/atcy/atcy/a_path.py
                                #当前执行脚本路径--子程序: D:/atcy/atcy/Package_A/aa_path.py
 
a08 = os.path.abspath(__file__) #当前执行脚本路径--主程序:D:\atcy\atcy\a_path.py
                                #               --子程序:D:\atcy\atcy\Package_A\aa_path.py
 
a09 = os.path.realpath(__file__)#当前执行脚本路径--主程序:D:\atcy\atcy\a_path.py
                                #               --子程序:D:\atcy\atcy\Package_A\aa_path.py
# ===================================================================================

2.4、__file__当前执行脚本路径

a05 = os.path.dirname(__file__)#当前执行脚本路径--主程序:D:/atcy/atcy
                               #               --子程序:D:/atcy/atcy/Package_A
a12 = os.path.abspath(a05)     #当前执行脚本路径(结果同上)
a15 = os.path.realpath(a05)    #当前执行脚本路径(结果同上)
a16 = os.path.dirname(a09)     #当前执行脚本路径(结果同上)
a17 = os.path.split(a09)[0]    #当前执行脚本路径(结果同上) 和平台无关

2.5.当前路径上级路径

a06 = os.path.dirname('.')     #为空
a20 = os.path.abspath('..')    #当前目录的上级目录--主程序:D:\atcy  子程序:D:\atcy
a23 = os.path.abspath(os.path.join(os.getcwd(), ".."))#当前目录的上级目录(结果同上)

2.6、当前路径上上级路径

a30 = os.path.abspath(os.path.join(r'D:\a01\a02\a03', "../.."))  # D:\a01
a31 = os.path.abspath(os.path.join(r'D:\a01\a02', "../.."))  # D:\
a32 = os.path.abspath(os.path.join(r'D:\a01', "../.."))  # D:\
a33 = os.path.abspath(os.path.join(r'D:', "../.."))  # D:\

2.7、系统路径

a34 = sys.path  # 获取系统路径;由环境变量PYTHONPATH初始化得到
"""['','C:\\ProgramData\\Anaconda3\\python36.zip',...]"""
a35 = sys.path[0]  # 当前脚本所在目录 # 主程序:D:\atcy\atcy 子程序: D:\atcy\atcy

2.8、sys.argv  

a36 = sys.argv     # 传给Python脚本指令参数列表 #['D:/atcy/atcy/a_path.py'] #['D:/atcy/atcy/a_path.py']
a37 = sys.argv[0]  # 脚本名字--当前执行脚本的绝对位置(命令行执行为空)  D:/atcy/test.py 和平台有关
                   # 主程序: D:/atcy/atcy/a_path.py  子程序: D:/atcy/atcy/a_path.py
3、site模块
# 将特定于站点的路径附加到模块搜索路径,并添加一些内置
# 本模块无论在什么地方执行返回结果相同
 
a40 = site.PREFIXES          # site-packages目录前缀列表
                             # ['C:\\ProgramData\\Anaconda3', 'C:\\ProgramData\\Anaconda3']
a41 = site.ENABLE_USER_SITE  # 显示用户site-packages目录状态:False禁用
                             # True 意味着它已启用并已添加到sys.path
 
a42 = site.USER_SITE  # 运行Python的用户站点包的路径
    # 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python36\\site-packages'
 
a43 = site.USER_BASE  # 用户站点包的基本目录的路径
    # Distutils使用此值来计算用户安装方案的脚本,数据文件,Python模块等的安装目录。
    # 'C:\\Users\\Administrator\\AppData\\Roaming\\Python'
 
a40=site.main()        # 将所有标准站点特定目录添加到模块搜索路径。导入此模块时会自动调用此函数
 
a44 = site.getsitepackages()  # 返回包含所有全局site-packages目录的列表。
"""
['C:\\ProgramData\\Anaconda3',         
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages'] 
"""
 
a45 = site.getuserbase()  # 返回用户基目录的路径USER_BASE
    # 'C:\\Users\\Administrator\\AppData\\Roaming\\Python'
 
a46 = site.getusersitepackages()  # 返回特定于用户的site-packages目录的路径USER_SITE
    # 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python36\\site-packages'
 
site.addsitedir(sitedir, known_paths=None)
    # 将目录添加到sys.path并处理其.pth文件。常用于sitecustomize或usercustomize
4、命令行执行
"""D:\atcy>python test.py"""            # D:\atcy\test.py...
"""D:\atcy>./test.py"""                 # 错误
"""D:\atcy>.\test.py或D:\atcy>test.py"""# 打开脚本文件
5、获取系统的各种信息:#environ是一个字符串所对应环境的映像对象

1)设置环境变量:

os.environ['环境变量名称']='环境变量值' #其中key和value均为string类型
os.putenv('环境变量名称','环境变量值')
# 实例:
    os.environ ['HSRL_INSTRUMENT'] ='gvhsrl'
    os.environ ['HSRL_CONFIG'] = os.path.expanduser(r '/主目录/hsrl_config')

 2)查看环境变量:

 os.environ
'''environ({'ALLUSERSPROFILE': 'C:\\ProgramData',...,
        'HSRL_INSTRUMENT': 'gvhsrl', 'HSRL_CONFIG': '/主目录/ hsrl_config'})
'''
dict(os.environ)#转字典

3)获取系统环境变量--key字段详解:

os.environ['HOMEPATH']       #当前用户主目录。Out[26]: '\\Users\\Administrator'
os.environ['TEMP']           #临时目录路径Out[27]: 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp'
os.environ['PATHEXT']        #可执行文件Out[28]: '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC'
os.environ['SYSTEMROOT']     #系统主目录Out[29]: 'C:\\Windows'
os.environ['LOGONSERVER']    #机器名Out[30]: '\\\\PC-201706181426'
os.environ['PROMPT']         #设置提示符Out[31]: '(base) $P$G'
os.environ['USERNAME']       # 'Administrator'
6.修改 PYTHONPATH 变量      #永久生效;尽量不要使用
SET PYTHONPATH=%cd%;%cd%\slim1#重新加载shell

改用:电脑中添加环境变量 1)cmd->set path=%path%;C:\Python# C:\Python 是Python的安装目录   2) Rapid Environment Editor:windows环境变量编辑软件中修改    # 下载地址:https://www.rapidee.com/en/download   3)[右键单击]计算机>属性>高级>环境变量-->单击“系统变量”下的[新建]    变量名称:PY_HOME,变量值:C:\ path \ to \ python \ version -->单击[确定]    找到“Path”系统变量,然后单击[编辑]-->将以下内容添加到现有变量:    %PY_HOME%;%PY_HOME%\库;%PY_HOME%\的DLL;%PY_HOME%\ LIB \ LIB-TK;-->单击[确定]

7.增加 .pth 文件 -- 最简单永久生效(推荐)
# 在site-packages/dist-packages添加一个路径文件xxx.pth
在C:\ProgramData\Anaconda3\lib\site-packages 下添加xxx.pth:
/home/wang/workspace#每个路径一行,文件名任意;模块文件所在的目录名称

关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.0429s