PyDev和Eclipse未解决的导入问题

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

我希望能够使用位于/Desktop/Python_Tutorials/diveintopython/py目录下的文件odbchelper.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我想要从/Desktop/Python_Tutorials/diveintopython/py/导入odbchelper.py /Desktop/Python_Tutorials/diveintopython/py/

每个留言板响应我可以find只是说使用sys.path.append()函数将此目录添加到我的path,然后导入它…但这正是我在我的代码中做的,它不工作。

我也尝试了Ctrl1技巧来抑制错误信息,但程序仍然无法正常工作。 我得到一个错误, ImportError: No module named odbchelper 。 所以显然没有得到添加的path,或者有一些问题,我所有的添加__init__.py文件的所有排列都错过了。

很简单,这个简单的东西…从我的机器上某处存在的某个文件中调用…需要这么多的努力。

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

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

最后注意到你可以'删除PyDev项目configuration'通过右键单击项目。 然后它可以再次变成一个PyDev项目,现在它就像金子一样好!

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

  • selectProject – > RightClick-> PyDev – > 删除PyDev项目configuration
  • 文件 – > 重启

而且我使用Python 2.7作为解释器,但我认为它不起作用。

我修复了我的pythonpath,当我通过控制台导入东西的时候,所有东西都很花哨,但是所有这些先前未parsing的导入仍然在我的代码中被标记为错误,无论我重启eclipse或刷新/清理项目多less次。

我右键单击项目 – > Pydev->删除错误标记,并摆脱了这个问题。 别担心,如果您的代码包含实际的错误,他们将被重新标记。

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

这是什么为我工作(由soulBit索取):

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

这是有史以来最简单的解决scheme,它完全消除了恼人的事情。

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

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

现在我再也看不到这个错误了,代码补全function和“瓶子”一起工作。

我正在运行Eclipse 4.2.0(Juno)和PyDev 2.8.1,并将lib安装到我的站点包path中,遇到了这个问题。 根据这个SO问题:

Pydev和* .pyc文件

… PyDev和pyc文件存在问题。 在我试图引用的特定lib的情况下,所有交付的是pyc文件。

以下是我所做的解决这个问题的方法:

  1. https://github.com/Mysterie/uncompyle2安装uncompyle2
  2. 对站点包lib中的* .pyc文件运行uncompyle2。 例:

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

  3. 将从uncompyle2生成的* .pyc_dis文件重命名为* .py
  4. 移动/复制这些* .py文件到站点包path
  5. 在Eclipse中,selectFile> Restart

与.pyc文件有关的未解决的导入错误现在应该消失。

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

  1. init .py添加到“〜/ Desktop / Python_Tutorials / diveintopython / py”文件夹中
  2. 转到窗口 – >首选项 – > PyDev – >解释器 – > Python解释器来删除你的Python解释器设置(原因是因为PyDev无法自动刷新任何系统的PythonPath更新)
  3. 在解释器中添加与之前相同的细节(这将刷新您的Python解释器设置,并对您的PythonPath进行更新)
  4. 最后,因为你的“〜/ Desktop / Python_Tutorials / diveintopython / py”文件夹不是一个标准的PythonPath,所以你需要添加它。有两种方法可以做到这一点

一个。 根据大卫德国人的build议。 但是,这只适用于你在b的特定项目。 在窗口 – >首选项 – > PyDev – >解释器 – > Python解释器 – >库子选项卡 – > NewFolder中添加“〜/ Desktop / Python_Tutorials / diveintopython / py”

希望它有帮助。