【问题标题】:Import error while importing a file in python在python中导入文件时出现导入错误
【发布时间】:2018-06-12 11:57:45
【问题描述】:

我在同一位置有两个文件,即“hello-depend.py”和“second-package.py”

hello-depend.py

 class HelloDepend():

    def depend():

         print "depend"

second-package.py

from hello-depend import HelloDepend

 class SecondPackage():

    def second():

       print "second"

       h = HelloDepend()

       h.depend()


 if \__name__ == '\__main__':

    s = SecondPackage()

    s.second()

我需要从 second-package.py 为 hello-depend.py 创建对象。我与上述方法捆绑在一起。但我在导入“hello-depend”时收到“语法错误”。

错误:

文件“second-package.py”,第 1 行

import hello-depend

            ^

SyntaxError: 无效语法

所以我尝试了以下方法。

导入导入库

importlib.import_module('hello-depend')

但我得到“全局名称'HelloDepend'未定义'

请帮我解决这个问题。

注意:我需要这样做而不更改文件名。

【问题讨论】:

  • @MohitC 我已经厌倦了......我在导入时遇到“语法错误”
  • 发布完整的回溯
  • @MohitC 。我已经发布了错误消息
  • 从模块名称中删除 - 并使用 _ 然后尝试。

标签: python-2.7 python-import importerror


【解决方案1】:

这里的问题是-。 Python 尝试将其视为减号,然后 hello-depend 不是有效标识符。

尝试通过将 - 替换为下划线 (_) 来重命名您的文件

编辑: 如果您只是无法更改文件名,无论原因是什么,那么您可以这样做

execfile('hello-depend.py')

请注意,这不会导入文件,它会将所有文件全局变量放入您自己的范围内,并且非常不推荐他来解决这个问题。

【讨论】:

  • 我需要这个功能而不改变文件名。我也已经提到过。
  • 请在此处阅读 PEP8 协议。 Python 确实不允许包名称像 python.org/dev/peps/pep-0008
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-07
  • 2013-05-30
  • 2018-01-25
  • 2022-08-16
  • 2019-10-30
  • 1970-01-01
相关资源
最近更新 更多