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,然后导入它…但这正是我在我的代码中做的,它不工作。
我也尝试了Ctrl – 1技巧来抑制错误信息,但程序仍然无法正常工作。 我得到一个错误, 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文件。
以下是我所做的解决这个问题的方法:
- 从https://github.com/Mysterie/uncompyle2安装uncompyle2
-
对站点包lib中的* .pyc文件运行uncompyle2。 例:
uncompyle2 -r -o / tmp / path / to / site-packages / lib
- 将从uncompyle2生成的* .pyc_dis文件重命名为* .py
- 移动/复制这些* .py文件到站点包path
- 在Eclipse中,selectFile> Restart
与.pyc文件有关的未解决的导入错误现在应该消失。
以下,在我看来会解决问题
- 将init .py添加到“〜/ Desktop / Python_Tutorials / diveintopython / py”文件夹中
- 转到窗口 – >首选项 – > PyDev – >解释器 – > Python解释器来删除你的Python解释器设置(原因是因为PyDev无法自动刷新任何系统的PythonPath更新)
- 在解释器中添加与之前相同的细节(这将刷新您的Python解释器设置,并对您的PythonPath进行更新)
- 最后,因为你的“〜/ Desktop / Python_Tutorials / diveintopython / py”文件夹不是一个标准的PythonPath,所以你需要添加它。有两种方法可以做到这一点
一个。 根据大卫德国人的build议。 但是,这只适用于你在b的特定项目。 在窗口 – >首选项 – > PyDev – >解释器 – > Python解释器 – >库子选项卡 – > NewFolder中添加“〜/ Desktop / Python_Tutorials / diveintopython / py”
希望它有帮助。