PyDev和Eclipse中的未解决导入问题
我刚开始接触PyDev和Python,虽然我之前用过很多Eclipse来写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
文件,但没有任何帮助。我尝试过逐个在项目位置和odbchelper.py文件之间的不同目录层级添加__init__.py
文件,也尝试过同时在所有中间目录添加这些文件,但都不行。
我只想在另一个目录下有一个项目,比如/Desktop/MyStuff/Project
,里面有example.py,然后我想从example.py中导入/Desktop/Python_Tutorials/diveintopython/py/
里的odbchelper.py。
我在网上找到的每个论坛回复都说要用sys.path.append()
函数把这个目录添加到我的路径里,然后再导入……但这正是我在代码中做的,结果却不行。
我还试过用Ctrl-1的技巧来抑制错误信息,但程序还是不正常。我收到一个错误,ImportError: No module named odbchelper
。所以显然路径没有被添加,或者我添加__init__.py
文件的各种方式中遗漏了什么。
真让人沮丧,这么简单的事情……从我机器上其他地方的文件调用东西……居然需要这么多努力。
12 个回答
我刚把一个WXWindows项目升级到Python 2.7,结果在让Pydev识别新解释器的时候遇到了很多麻烦。我按照之前的方法配置了解释器,还重新安装了Eclipse和Pydev。我以为Python的某个部分可能坏了,所以又把所有东西都重新安装了一遍。真是让人抓狂!在这些更改之间,我还关闭并重新打开了项目,也重启了Eclipse。
最后我终于注意到,可以通过右键点击项目来“移除PyDev项目配置”。然后就可以把它重新变成一个PyDev项目,现在一切都正常了!
我在使用Eclipse Kepler 4.3和PyDev 3.9.2,系统是Ubuntu 14.04的时候,遇到了同样的问题。我尝试了很多方法,花了几个小时,但都没能解决。后来我试了以下方法,效果很好:
- 选择项目 -> 右键点击 -> PyDev -> 移除PyDev项目配置
- 文件 -> 重启
我使用的是Python 2.7作为解释器,虽然我觉得这并没有影响。
在你的pydev项目设置里,有一个叫“PyDev - PYTHONPATH”的选项卡,里面还有一个子选项卡叫“外部库”。你可以通过这个选项卡把源文件夹(任何包含__init__.py
的文件夹)添加到路径中。这样,你的项目代码就可以从这些源文件夹中导入模块了。