python导入行为异常
我想在我的项目中使用完整的导入名称(请参阅)。这里描述的问题已经解决,并且一切正常(编辑:如果脚本是在eclipse和pydev(在windows上运行)之外的linux上的ccps(内置jython)中使用执行文件启动的。但是,eclipse给了我以下错误:python导入行为异常,python,jython,pydev,jython-2.5,Python,Jython,Pydev,Jython 2.5,我想在我的项目中使用完整的导入名称(请参阅)。这里描述的问题已经解决,并且一切正常(编辑:如果脚本是在eclipse和pydev(在windows上运行)之外的linux上的ccps(内置jython)中使用执行文件启动的。但是,eclipse给了我以下错误: from Project.gui import gui ImportError: No module named gui 而我的项目结构包含以下内容(没有.py的所有内容都是文件夹): 我启动Project.Project.py并得到上
from Project.gui import gui
ImportError: No module named gui
而我的项目结构包含以下内容(没有.py的所有内容都是文件夹):
我启动Project.Project.py并得到上面的错误。
print sys.path
就在关键导入产生之前:
['****\\Root\\Project', '****\\Root',
*bunch of jars/jython libs*,
'__classpath__', '__pyclasspath__/']
我正在运行eclipse和PyDev。因为
\\Root\\Project
是您路径中的第一个,它将首先查看项目文件夹中的,因此从Project.gui
可以看到Project.py
,但由于没有gui,因此会抛出一个错误
您可以在导入之前临时放入sys.path.insert(0,***\\Root”)
,以检查是否存在这种情况。但是我会将**\\Root\\Project
从您的PYTHON路径中移除
那你就可以做了
from Project import Project
及
您可以尝试将Project.py重命名为其他名称,然后再次尝试导入吗?我刚刚这么做了,这是解决方案,出于某种原因,如果它看到具有该名称的模块,它会忽略该包。就为了破解它:有没有一种方法可以让python在一个失败的情况下同时搜索这两个?“有没有一种方法可以让python在一个失败的情况下同时搜索这两个”——是的。阅读
尝试
和除外
。它可能看起来像:try:importproject;除了importError:import Foo as Project
为什么要给模块起与其父包相同的名称?因为它是一个convenice脚本,应该为提供的模块启动一个gui,我认为这比index.py更方便,因为我不知道主文件的任何标准,我知道改变它开始,我不喜欢,嗯,感谢一个正确的解决方案,我会重命名文件,虽然马吕斯建议,因为我认为这个储蓄者/更容易
from Project import Project
from Project.gui import gui