返回顶部
首页 > 资讯 > 后端开发 > Python >Python import同级modul
  • 370
分享到

Python import同级modul

Pythonimportmodul 2023-01-31 06:01:08 370人浏览 安东尼

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

摘要

    看了一段python的基础视频,正好赶上单位需要做个小工具。索性拿它练练手,刚刚开动就遇到一个新的问题:目录引用。简单的说,就是将不同的功能代码,分到不同的目录文件中,代码中涉及到同级目录调用,问题就出来了“SystemError:

    看了一段python的基础视频,正好赶上单位需要做个小工具。索性拿它练练手,刚刚开动就遇到一个新的问题:目录引用。简单的说,就是将不同的功能代码,分到不同的目录文件中,代码中涉及到同级目录调用,问题就出来了“SystemError: Parent module '' not loaded, cannot perfORM relative import”。

    先看一下目录结构:

wKioL1RmF5KTx50sAAEPQLnI4vw282.jpg



Operateexcel.py


#!F:/Python/python


from ..Model.ObjectFile import *

def showMessage():
	print('OperateExcel file is Load')


ObjectFile.py

def showMessage():
	print('Object File is running!')


在python环境调用提示:

Traceback (most recent call last):

  File "Operate/OperateExcel.py", line 4, in <module>

    from ..Model.ObjectFile import *

SystemError: Parent module '' not loaded, cannot perform relative import


查阅了一些资料,发现问题在于引用路径上,就是OperateExcel.py 的

from ..Model.ObjectFile import *


修改OperateExcel.py 查看一下,该文件在启动时加载了哪些路径。

修改代码如下:

#!F:/Python/python


# from ..Model.ObjectFile import *

# def showMessage():
# 	print('OperateExcel file is Load')


import sys,pprint

pprint.pprint(sys.path)

打印输出默认调用路径:

['F:\\Python\\Project\\ExcelOperateProject\\Operate',

 'C:\\windows\\system32\\python33.zip',

 'C:\\Python33\\DLLs',

 'C:\\Python33\\lib',

 'C:\\Python33',

 'C:\\Python33\\lib\\site-packages']


问题貌似明朗化,加载时未找到加载的路径。曾经尝试修改Operate目录下的__init__.py文件(该文件默认为空)。

import sys
sys.pate.append('F:\\Python\\Project\\ExcelOperateProject\\Model',
 
)

调用OperateExcel.py输入如下:

['F:\\Python\\Project\\ExcelOperateProject\\Operate',

 'C:\\Windows\\system32\\python33.zip',

 'C:\\Python33\\DLLs',

 'C:\\Python33\\lib',

 'C:\\Python33',

 'C:\\Python33\\lib\\site-packages']

(对于__init__还停留在初级阶段,如有使用不当还请批评指正)。


问题原因已经明确,即文件调用未加载指定路径,造成编译错误。经过度娘查询一些以往大神的经验。发现主要问题在于同级module无法直接调用。需要先找到上一级的module而后查询到调用的内容。前提你的执行文件目录不能与你的引入文件同级。所以我修改一下目录结构如下:

wKioL1RmzWCwxHhgAACPBAuBq8c551.jpg


将Model目录、Operate目录封装到package目录下,并且在package目录下创建空的__init__.py文件(这个很重要,否则在跨模块调用时会提示错误,因编译程序未将package看作是module)。然走在ExcelOperateProject目录下建立main.py调用package/Operate/OperateExcel.py代码如下:

from package.Operate import OperateExcel

OperateExcel.showMessage()

调用成功!哇哈哈!


--结束END--

本文标题: Python import同级modul

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

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

猜你喜欢
  • Python import同级modul
        看了一段Python的基础视频,正好赶上单位需要做个小工具。索性拿它练练手,刚刚开动就遇到一个新的问题:目录引用。简单的说,就是将不同的功能代码,分到不同的目录文件中,代码中涉及到同级目录调用,问题就出来了“SystemError:...
    99+
    2023-01-31
    Python import modul
  • Python 同级目录import报错
    在使用protobuf时,我们自己了各种Options的时候,在生成的python文件会在同级目录中引用,所以这个时候我们不能做到,加个__init__.py文件了事然后在文件里面写 import mudole.file这样的代码,因为我...
    99+
    2023-01-31
    报错 目录 Python
  • Python import同级目录报错
    参考:http://blog.csdn.net/geekleee/article/details/52505233 pycharm不会将当前文件目录自动加入自己的sourse_path。右键make_directory as-->...
    99+
    2023-01-31
    报错 目录 Python
  • python 在不同层级目录import
    http://www.cnitblog.com/seeyeah/archive/2009/03/15/55440.html python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。 下面将具...
    99+
    2023-01-31
    层级 目录 python
  • python在不同层级目录import模块的方法
    使用python进行程序编写时,经常会使用第三方模块包。这种包我们可以通过python setup install 进行安装后,通过import XXX或from XXX import yyy 进行导入。不...
    99+
    2022-06-04
    层级 模块 目录
  • Python import
    python 的import是需要将项目目录加到python的环境变量里面这样才能用项目的相对路径来导入文件要运行文件加入import os import sys BASEDIR = os.path.dirname(os.path.absp...
    99+
    2023-01-31
    Python import
  • python import MySQLd
    警告:Python26\lib\site-packages\MySQLdb\__init__.py:34: DeprecationWarning: the sets module is deprecated  from sets impor...
    99+
    2023-01-31
    python import MySQLd
  • Python中import导入上一级目录模块及循环import问题的解决
    import上一级目录的模块 python中,import module会去sys.path搜索,sys.path是个列表,并且我们可以动态修改。 要import某个目录的module,我们sys.path...
    99+
    2022-06-04
    模块 目录 Python
  • Python--import---语法-
    --import指令前文提到 import 指令是用来载入 module 的,如果需要,也会顺道做编译的事。但 import 指令,还会做一件重要的事情就是把 import 的那个 module 的代码执行一遍,这件事情很重要。Python...
    99+
    2023-01-31
    语法 Python import
  • python import 与 from
    在python用import或者from...import来导入相应的模块。模块其实就一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中,我们就可以使用了。pycharm 工具#...
    99+
    2023-01-31
    python import
  • Python import 【总结】
    Python import总结可能网上很多文章或博客都没解释清楚,作者自己也苦心于Python的import。至此,把自己的总结的分享给大家,本文不做基础讲解,仅说明疑惑的地方。新版本的Pycharm 2017.1.1,对自己定义的模块都有...
    99+
    2023-01-31
    Python import
  • python中的import
    python中的import操作有点类似于C语言中的#include,但又有很大的不同。在c语言中,#include是编译前将另一个文件包含进当前文件中。在python中导入并非只把一个文件文本插入另一个文件而已。导入其实是运行时的运算,程...
    99+
    2023-01-31
    python import
  • python import 机制
    Python 环境初始化过程中就会将sys module加载到内存中,但是为了local空间更干净,需要用户亲自导入,通知python.module对象实际上是一个dict在维护着,hello.__dict__打印出属性和属性值...
    99+
    2023-01-31
    机制 python import
  • linux7中python Import
    linux7中python ImportError: No module named pymc 处理方法 系统环境 #cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)...
    99+
    2023-01-31
    python Import
  • python import media模
    media模块不是系统的标准模块,要单独下载的! 本人python版本2.72 下面说一下我的下载和安装步骤: 下载:Python Imaging Library 1.1.7 for Python 2.7-->安装 下载pyg...
    99+
    2023-01-31
    python import media
  • python import 引用上上上级包的三种方法
    目录方法一方法二方法三方法一 相对引用: from … import base ,上级目录from … import base,上上级目录 from .....
    99+
    2023-02-27
    python import 引用上上上级包 python import 引用上级包 python import 引用包
  • python import引用上上上级包的方法是什么
    本篇内容主要讲解“python import引用上上上级包的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python import引用上上上级包的方法是什么”吧!...
    99+
    2023-07-05
  • python中import和from-import的区别解析
    目录. import导入模块的路径两种方式. import 模块名 和 from 模块名 import * 是不同的;.重新导入模块的方法import和from-import的显著区...
    99+
    2022-12-08
    python中import和from-import的区别 python中import from-import
  • python中的import,reloa
    import 作用: 导入/引入一个python标准模块,其中包括.py文件、带有__init__.py文件的目录。e.g:[python] view plaincopy import module_name[,module1,...]  ...
    99+
    2023-01-31
    python import reloa
  • python import的用法
    1、dir(keywork)报错>>> dir(keyword) Traceback (most recent call last):   File "<stdin>", line 1, in <modu...
    99+
    2023-01-31
    python import
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作