当前位置: 首页 > wzjs >正文

甘肃做高端网站的公司成都关键词seo推广电话

甘肃做高端网站的公司,成都关键词seo推广电话,民权平台网站建设,大一学生做的网站Python模块引用有两种方法 绝对路径引入 Python 在搜索模块时,依次搜索sys.path里的位置,直到找到模块为止。 sys.path 官方文档说明:A list of strings that specifies the search path for modules. Initialized from the environment v…

Python模块引用有两种方法

绝对路径引入

Python 在搜索模块时,依次搜索sys.path里的位置,直到找到模块为止。

sys.path
官方文档说明:A list of strings that specifies the search path for modules. Initialized from the environment variable PYTHONPATH, plus an installation-dependent default.

sys.path 初始化的时候有两部分:os.environ[‘PYTHONPATH’] 和 默认的安装依赖的一些路径(例如 python 安装的根目录 和 pythonxx.zip),是python的搜索模块的路径集,是一个list

下面命令可以查看当前的搜索路径:

import sys
print(sys.path)
输出:

C:\Users\Administrator\Desktop\pythontest
C:\Python27\Lib\idlelib
C:\Windows\system32\python27.zip
C:\Python27\DLLs
C:\Python27\lib
C:\Python27\lib\plat-win
C:\Python27\lib\lib-tk
C:\Python27
C:\Python27\lib\site-packages

以上输出是python的sys.path的路径列表,它是一个list。默认情况下python导入文件或者模块的话,他会先在sys.path里找模块的路径。如果没有的话,程序就会报错。

PYTHONPATH
如果我们使用 PYTHONPATH 中的 modules,那么在运行 python 前,就要把 path 加到 os.environ[‘PYTHONPATH’],在运行 python 后再加,那些模块不能直接被导入

而且当前脚本的路径默认会在这个list里面,比如:C:\Users\Administrator\Desktop\pythontest。所以当前脚本import 模块(通常是脚本文件),如果是这个脚本当前目录的情况下,是不会报错的(报错信息:找不到模块)。

sys.path的初始值来源于两个。一个是系统的PYTHONPATH变量,因此可通过设置该变量,来设置 Python 默认的搜索位置。比如:

export PYTHONPATH=/opt/python:$PYTHONPATH
echo $PYTHONPATH
将该命令放在系统初始化脚本(/etc/environment)或者 BASH 初始化脚本(~/.bashrc)里,可以对每个新开的窗口有效。

sys.path的另一个来源是当前执行程序所在的目录 (而不是当前目录)。比如当前目录下文件夹./cc下有一个b.py,那么执行./cc/b.py时,./cc(而不是./!)将被加到sys.path:

python ./cc/b.py

相对路径引用

上面说的是搜索模块都是指绝对路径引用。对于非系统目录,就需要操纵sys.path。但操纵sys.path有外溢效果,因为它是一个全局变量。对于同一个库里的模块的互相引用,可以考虑使用相对路径:

from . import abc
from .abc import fool
from …up import foo
但相对路径有两个很恶心的问题,使得用法极为受限。其中一个是:

Note that both explicit and implicit relative imports are based on the name of the current module. Since the name of the main module is always main, modules intended for use as the main module of a Python application should always use absolute imports.

包含相对路径 import 的 python 脚本不能直接运行,只能作为 module 被引用。原因正如手册中描述的,所谓相对路径其实就是相对于当前 module 的路径,但如果直接执行脚本,这个 module 的 name 就是__main__, 而不是 module 原来的 name , 这样相对路径也就不是原来的相对路径了,导入就会失败。

在使用相对引用的文件中,不能有 main 方法,只执行作为一个 module 进行引用,而不是直接执行脚本。

举个简单例子。假设./cc/目录下已有一个./cc/b.py(内容为空)。当前目录下的./a.py内容为:

from .cc import b
那么直接运行python ./a.py将会报错:

ModuleNotFoundError: No module named ‘main.cc’; ‘main’ is not a package
另一个是常见的错误是: ValueError: attempted relative import beyond top-level package。

注意不光是无法直接执行,imp.load_source以及用importlib.util实现的类似功能,都无法导入这样的文件模块。因此相对引入在实际应用中使用极为受限。

http://www.dtcms.com/wzjs/251207.html

相关文章:

  • wordpress 主体北京seo代理公司
  • 饮料网站建设价格长沙百度推广优化排名
  • 权威的扬中网站建设搜狗seo培训
  • 营销型企业网站建设与推广一键生成网页
  • 搭建自己微信网站美国搜索引擎浏览器
  • 泰安建设网站哪个好网站建设网络营销
  • 行业前10的网站建设公司个人网站设计欣赏
  • 设计师网站使用不了网络营销公司全网推广公司
  • 济南做网站价格百度百科官网登录
  • 浙江省的网站建设公司有哪些网站优化外包推荐
  • 网站建设机器人怎么制作网页推广
  • 深圳网站建设推广论坛做seo用哪种建站程序最好
  • 河南做外贸网站的公司推广形式有哪几种
  • 河南郑州创建网站公司竞价排名是什么意思
  • 枣庄网站优化百度竞价是什么意思
  • 中山全麦网站建设网站开发
  • 网站常见 8图片外链生成工具在线
  • 网站 根目录 虚拟目录开发网站建设公司
  • 网站开发工具 nseo是什么及作用
  • 中国的网站做欧美风百度推广销售话术
  • 西安的做网站的公司贵州二级站seo整站优化排名
  • 北京朝阳区网站建设公司佛山seo网站排名
  • 网站设计行业前景百度推广怎么优化排名
  • 宁波网站建设地方网站seo推广招聘
  • 如何做网站进行推广优化seo方案
  • seo站长助手免费手机网站建站平台
  • 有没有专门帮人做图的网站百度页面
  • 安平做网站的电话免费视频网站推广软件
  • 南昌天和建设有限公司网站google play下载官方版
  • 单页网站怎么做竞价台州关键词优化报价