Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python导入行为异常_Python_Jython_Pydev_Jython 2.5 - Fatal编程技术网

python导入行为异常

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并得到上

我想在我的项目中使用完整的导入名称(请参阅)。这里描述的问题已经解决,并且一切正常(编辑:如果脚本是在eclipse和pydev(在windows上运行)之外的linux上的ccps(内置jython)中使用执行文件启动的。但是,eclipse给了我以下错误:

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