PyDev和Eclipse未解决的导入问题

ely*_*ely 107 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")
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我希望我的代码的下一行是:

import odbchelper
Run Code Online (Sandbox Code Playgroud)

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

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

我可以找到的每个留言板响应只是说使用该sys.path.append()函数将此目录添加到我的路径,然后导入它......但这正是我在我的代码中所做的并且它无法正常工作.

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

这件事很简单......从我机器上其他地方存在的某个文件调用东西......这需要付出很多努力.

Dav*_*man 131

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

  • 另外需要注意的一点是 - 可能需要重新启动Eclipse才能使其正常工作.这似乎只能通过"文件 - >重新启动"而不是手动关闭和重新打开. (86认同)
  • **重要说明:**我发现解释器Auto Config添加了`C:\ Python27\lib\site-packages`,但在我的计算机上,lib文件夹大写:`C:\ Python27\Lib\site -packages`.用大写的一个替换小写条目,然后File-> Restart为我修复了问题.希望能帮助其他人:) (18认同)
  • @soulBit我希望我可以大拇指评论20次,我花了一个小时试图弄清楚为什么我的导入仍未解决.谢谢 (10认同)
  • 对于其他搜索者,我想添加我的经验-Windows 7,Python 2.7.1,Eclipse 3.6.2,PyDev,Pyschopg(For Python 2.7 amd64).Psychopg的安装去了C:\ Python27\Lib\site-packages\psycopg2(在Python 2.7安装下).我首先使用__init__.py引用该文件夹和所有子文件夹,但发现我还必须引用site_packages文件夹.(http://stackoverflow.com/questions/2983088/unresolved-import-models)(http://stackoverflow.com/questions/4631377/unresolved-import-issues-with-pydev-and-eclipse) (6认同)
  • 如果正确设置pydev属性,则不需要乱用`sys.path` (4认同)
  • 不确定这是否会对其他人有所帮助,但要确保如果您的代码正在执行类似`import api.models`的操作,则需要添加_contains_的`api`目录文件夹,而不是`api`目录本身.导入时,系统将查找名为`api`的子文件夹的路径.来自:http://stackoverflow.com/questions/14201504/unresolved-import-in-eclipse-pydev (3认同)
  • **重要说明#2:**我有一个大写的lib文件夹,但它只是通过删除当前的python解释器,然后创建一个新的(按钮'自动配置')和文件 - >重新启动,对我有用. (2认同)

小智 48

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

  • 选择Project - > RightClick-> PyDev - > Remove PyDev Project Config
  • file-> restart

我认为,我使用Python 2.7作为解释器,虽然它不起作用.

  • 无需重启Eclipse,只需关闭并重新打开文件即可.它还使用Eclipse Luna在Windows上运行,谢谢! (5认同)

小智 42

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

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


Mar*_*tin 17

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

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


zha*_*eng 10

project - > properties - > pydev-pythonpath - > external libraries - >添加源文件夹,添加项目的PARENT FOLDER.然后重启eclipse.

  • 好吧,这就是解决我的问题的方法。 (2认同)

Bra*_*ana 5

这是对我有用的(由soulBit推荐):

1) Restart using restart from the file menu
2) Once it started again, manually close and open it.
Run Code Online (Sandbox Code Playgroud)

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