PyDev和Eclipse未解决的导入问题

时间:2011-01-07 23:55:28

标签: python pydev python-import

我是PyDev和Python的新手,尽管我已经使用Eclipse for Java了。我正在尝试通过一些Dive Into Python示例,这感觉就像一个非常微不足道的问题,只是变得非常烦人。我正在使用Ubuntu Linux 10.04。

我希望能够使用文件odbchelper.py,它位于目录/Desktop/Python_Tutorials/diveintopython/py

这是我在PyDev / Eclipse项目中正在处理的example.py文件:

import sys
sys.path.append("~/Desktop/Python_Tutorials/diveintopython/py")

这很好用,但我希望我的代码的下一行是:

import odbchelper

这会导致每次都出现未解决的导入错误。我已将__init__.py个文件添加到几乎所有可能的目录中,但它没有任何帮助。我已经尝试一次一个地添加__init__.py个文件到项目位置和odbchelper.py文件之间的各个目录级别,我也尝试将__init__.py个文件添加到所有文件中目录之间同时进行。两者都不起作用。

我想做的就是在其他目录中的某个地方有一个项目,比如/Desktop/MyStuff/Project,其中我有example.py ...然后从example.py我要从{导入odbchelper.py {1}}

我可以找到每个留言板响应,只是说使用/Desktop/Python_Tutorials/diveintopython/py/函数将此目录添加到我的路径中,然后导入它......但这正是我在我的代码中所做的,而不是工作

我还尝试了 Ctrl - 1 技巧来抑制错误信息,但程序仍无法正常运行。我收到错误sys.path.append()。因此,显然没有添加路径,或者存在一些问题,即我添加ImportError: No module named odbchelper文件的所有排列都错过了。

令人非常沮丧的是,这个简单的东西......从我机器上其他地方存在的某个文件调用东西......需要这么多努力。

11 个答案:

答案 0 :(得分:128)

在你的pydev项目的属性中,有一个名为“PyDev - PYTHONPATH”的窗格,其中有一个名为“External Libraries”的子窗格。您可以使用该窗格将源文件夹(具有__init__.py的任何文件夹)添加到路径中。然后,您的项目代码将能够从这些源文件夹中导入模块。

答案 1 :(得分:44)

我正在使用eclipse kepler 4.3,PyDev 3.9.2和我的ubuntu 14.04遇到了同样的问题。我尝试并花了几个小时,以上所有的选项,但都是徒劳的。然后我尝试了以下很棒的事情:

  • 选择项目 - > RightClick->的的PyDev - > 删除PyDev项目配置
  • 文件>的重新启动

我正在使用Python 2.7作为解释器,但我认为它没有效果。

答案 2 :(得分:42)

我刚刚将WXWindows项目升级到Python 2.7,并且让Pydev无法识别新的解释器。与上面配置解释器一样,完全安装了Eclipse和Pydev。认为python的某些部分一定是腐败的,所以我重新安装了一切。 Arghh!关闭并重新打开项目,并在所有这些更改之间重新启动Eclipse。

最后注意到您可以通过右键单击项目来“删除PyDev项目配置”。然后它可以再次制作成PyDev项目,现在它就像黄金一样好!

答案 3 :(得分:17)

我修复了我的pythonpath,当我通过控制台导入内容时,一切都很花花公子,但所有这些以前未解析的导入仍然在我的代码中被标记为错误,无论我重启eclipse或刷新/清理项目多少次。

我右键单击了项目 - > Pydev->删除了错误标记,它解决了这个问题。不用担心,如果您的代码包含实际错误,则会重新标记。

答案 4 :(得分:10)

项目 - >属性 - > pydev-pythonpath - >外部库 - >添加源文件夹,添加项目的PARENT FOLDER。然后重启eclipse。

答案 5 :(得分:4)

这对我有用(由soulBit建议):

1) Restart using restart from the file menu
2) Once it started again, manually close and open it.

这是迄今为止最简单的解决方案,它完全消除了烦人的事情。

答案 6 :(得分:1)

有两种方法可以解决这个问题:

  • 从“Python解释器”中删除Python解释器并再次添加。
  • 或者只是在您在项目中使用的解释器中添加包含库的文件夹,在我的情况下我使用的是“bottle”,我添加的文件夹是“c:\ Python33 \ Lib \ site-packages \ bottle- 0.11.6-py3.3.egg“

现在我不再看到错误,代码完成功能也适用于“bottle”。

答案 7 :(得分:1)

我正在运行Eclipse 4.2.0(Juno)和PyDev 2.8.1,并且在我的site-packages路径中安装了lib时遇到了这个问题。根据这个SO问题:

Pydev and *.pyc Files

... PyDev和pyc文件存在问题。对于我试图引用的特定lib的情况,所有提供的都是pyc文件。

以下是我为解决这个问题所做的工作:

  1. https://github.com/Mysterie/uncompyle2
  2. 安装uncompyle2
  3. 对site-packages lib中的* .pyc文件运行uncompyle2。示例:

    uncompyle2 -r -o / tmp / path / to / site-packages / lib

  4. 将从uncompyle2生成的* .pyc_dis文件重命名为* .py
  5. 将这些* .py文件移动/复制到site-packages路径
  6. 在Eclipse中,选择文件>重新启动
  7. 与.pyc文件相关的未解决的导入错误现在应该消失。

答案 8 :(得分:0)

以下,在我看来会解决问题

  1. init .py添加到您的"〜/ Desktop / Python_Tutorials / diveintopython / py"夹
  2. 转到窗口 - >偏好 - > PyDev - >口译员 - > Python解释器删除您的Python解释器设置(原因是因为PyDev无法自动刷新对任何系统PythonPath所做的任何更新)
  3. 使用与之前相同的详细信息添加解释器(这将刷新Python解释器设置并对PythonPath进行更新)
  4. 最后,因为你的"〜/ Desktop / Python_Tutorials / diveintopython / py"文件夹不是标准的PythonPath,您需要将其添加进来。有两种方法可以做到这一点
  5. 一个。根据大卫德国人的建议。但是,这仅适用于您所在的特定项目 湾添加"〜/ Desktop / Python_Tutorials / diveintopython / py"进入Window下的新PythonPath - >偏好 - > PyDev - >口译员 - > Python解释器 - >库子选项卡 - > NewFolder

    希望它有所帮助。

答案 9 :(得分:0)

在尝试解决问题之后,通过理解,我在导入其他库时遇到了一些问题 PYTHONPATH,解释器和语法我发现我做了所有写的工作,但问题仍然存在。之后,我只是在具有导入错误的文件中添加一个新的空行并保存,然后错误得以解决

答案 10 :(得分:-1)

KD.py

class A:
a=10;

KD2.py 
from com.jbk.KD import A;
class B:
  b=120;

aa=A();
print(aa.a)

这适合我的文件

另一个例子是

main.py
=======
from com.jbk.scenarios.objectcreation.settings import _init
from com.jbk.scenarios.objectcreation.subfile import stuff

_init();
stuff();

settings.py
==========
def _init():
print("kiran")


subfile.py
==========
def stuff():
print("asasas")