问题: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
文件添加到几乎所有可能的目录中,但它无济于事。我尝试一次将__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
文件的所有排列都遗漏的问题。
如此简单的事情令人非常沮丧……从我的机器上其他地方存在的文件中调用事物……需要这么多的努力。
回答 0
在pydev项目的属性中,有一个名为“ PyDev-PYTHONPATH”的窗格,以及一个名为“ External Libraries”的子窗格。您可以__init__.py
使用该窗格将源文件夹(任何带有的文件夹)添加到路径。然后,您的项目代码将能够从那些源文件夹中导入模块。
回答 1
我正在使用eclipse kepler 4.3,PyDev 3.9.2和在Ubuntu 14.04上遇到相同的问题。我尝试并花费了数小时,使用了以上所有大多数选项,但徒劳无功。然后我尝试了以下很棒的方法:
- 选择项目 – > RightClick-> 的PyDev – > 删除PyDev的项目配置
- 文件-> 重新启动
我认为我使用Python 2.7作为解释器,尽管它没有作用。
回答 2
我刚刚将WXWindows项目升级到Python 2.7,并且让Pydev识别新的解释器没有麻烦。进行与上述配置解释器相同的操作,重新安装了Eclipse和Pydev。以为python的某些部分一定已损坏,所以我再次重新安装了所有内容。啊!关闭并重新打开项目,然后在所有这些更改之间重新启动Eclipse。
最终注意到,您可以通过右键单击项目来“删除PyDev项目配置”。然后可以将其重新制作为PyDev项目,现在它就像金子一样好!
回答 3
我修复了pythonpath,当我通过控制台导入内容时,一切都变得很花哨,但是无论我重新启动eclipse或刷新/清理项目多少次,所有这些以前无法解决的导入仍被标记为我的代码中的错误。
我右键单击项目-> Pydev->删除错误标记,它摆脱了这个问题。不用担心,如果您的代码中包含实际错误,它们将被重新标记。
回答 4
项目->属性-> pydev-pythonpath->外部库->添加源文件夹,添加项目的父文件夹。然后重新启动Eclipse。
回答 5
这是为我工作的(由soulBit推荐):
1) Restart using restart from the file menu
2) Once it started again, manually close and open it.
这是有史以来最简单的解决方案,它完全消除了烦人的事情。
回答 6
有两种方法可以解决此问题:
- 从“ Python解释器”中删除Python解释器,然后再次添加。
- 或者只是在项目中使用的解释器中添加包含库的文件夹,就我而言,我使用的是“ bottle”,添加的文件夹是“ c:\ Python33 \ Lib \ site-packages \ bottle-0.11.6 -py3.3.egg”
现在,我不再看到该错误,并且代码完成功能也可以与“瓶”一起使用。
回答 7
我正在运行Eclipse 4.2.0(Juno)和PyDev 2.8.1,并在将lib安装到我的站点软件包路径时遇到了此问题。根据这个SO问题:
… PyDev和pyc文件存在问题。对于我尝试引用的特定库,仅提供pyc文件。
这是我为解决此问题所做的工作:
- 从https://github.com/Mysterie/uncompyle2安装uncompyle2
对site-packages库中的* .pyc文件运行uncompyle2。例:
uncompyle2 -r -o / tmp / path / to / site-packages / lib
- 将由uncompyle2生成的结果* .pyc_dis文件重命名为* .py
- 将这些* .py文件移动/复制到站点软件包路径
- 在Eclipse中,选择File> Restart
与.pyc文件有关的未解决的导入错误现在应该消失了。
回答 8
以下,我认为会解决问题
- 将init .py 添加到“〜/ Desktop / Python_Tutorials / diveintopython / py”文件夹中
- 转到窗口->首选项-> PyDev->解释器-> Python解释器以删除您的Python解释器设置(原因是因为PyDev无法自动刷新对任何系统PythonPath所做的任何更新)
- 使用与之前相同的详细信息添加解释器(这将通过对PythonPath进行的更新来刷新Python解释器设置)
- 最后,由于您的“〜/ Desktop / Python_Tutorials / diveintopython / py”文件夹不是标准的PythonPath,因此需要将其添加。有两种方法可以实现
一个。按照大卫·德文的建议。但是,这仅适用于您所在的特定项目。在“窗口”->首选项-> PyDev->解释器-> Python解释器->库子选项卡-> NewFolder下,将“〜/ Desktop / Python_Tutorials / diveintopython / py”添加到新的PythonPath中
希望能帮助到你。
回答 9
在尝试解决问题之后,通过理解PYTHONPATH,解释器和语法,我在导入其他库时遇到了一些问题,我发现我做了所有的编写,但问题仍然存在。之后,我只在出现导入错误的文件中添加一个新的空行,然后保存它们并解决了错误。
回答 10
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")