Python 2.7 在python中导入文件时发生导入错误
我在同一位置有两个文件,即“hello dependen.py”和“second package.py” hello dependen.pyPython 2.7 在python中导入文件时发生导入错误,python-2.7,python-import,importerror,Python 2.7,Python Import,Importerror,我在同一位置有两个文件,即“hello dependen.py”和“second package.py” hello dependen.py class HelloDepend(): def depend(): print "depend" from hello-depend import HelloDepend class SecondPackage(): def second(): print "second"
class HelloDepend():
def depend():
print "depend"
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
class HelloDepend():
def depend():
print "depend"
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-dependent.py创建对象。我用上述方法打成平局。但在导入“hello Dependent”时,我遇到了“语法错误”
错误:
文件“second package.py”,第1行
SyntaxError:无效语法
所以我试着用下面的方法
导入导入库
importlib.import_模块('hello-depend'))
但我得到了“全局名称”“HelloDepend”未定义”
请帮我解决这个问题
注意:我需要在不更改文件名的情况下执行此操作。这里的问题是
-
。Python尝试将其视为减号,而hello dependent
则不是有效的标识符
尝试通过将-替换为下划线(\uu
)来重命名文件
编辑:
如果你只是不能更改文件名,不管原因是什么,那么你可以这样做
execfile('hello-depend.py')
请注意,这不会导入该文件,它会将所有文件全局文件都导入到您自己的作用域中,因此他极不推荐解决此问题。问题是这里的
-
。Python尝试将其视为减号,而hello dependen
则不是有效的标识符
尝试通过将-替换为下划线(\uu
)来重命名文件
编辑:
如果你只是不能更改文件名,不管原因是什么,那么你可以这样做
execfile('hello-depend.py')
请注意,这不会导入该文件,它会将所有全局文件导入到您自己的范围内,他解决此问题的方法非常不可取。@MohitC我已经厌倦了。导入完整的日志时,我遇到了“语法错误”traceback@MohitC.我已经发布了错误消息Remove
-
from module name and use _
然后再试一次。@MohitC我已经厌倦了这一点。。我在导入完整的日志时遇到了“语法错误”traceback@MohitC。我已发布错误消息从模块名称中删除-
,并使用。
然后重试。我需要此功能,但不更改文件名。我也提到了这一点。请阅读PEP8 conevnPython不允许包名是这样的我需要这个功能而不改变文件名。我也提到过。请阅读这里的PEP8说明。Python不允许包名是这样的