PyDev 和 Eclipse 中未解决的导入问题

2025-04-16 08:58:00
admin
原创
17
摘要:问题描述:我对 PyDev 和 Python 还很陌生,虽然我经常用 Eclipse 来开发 Java。我正在尝试完成一些“深入 Python”的示例,这个问题感觉像个小问题,但越来越烦人。我使用的是 Ubuntu Linux 10.04。我希望能够使用位于目录中的文件 odbchelper.py/Deskt...

问题描述:

我对 PyDev 和 Python 还很陌生,虽然我经常用 Eclipse 来开发 Java。我正在尝试完成一些“深入 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 导入 o​​dbchelper.py/Desktop/Python_Tutorials/diveintopython/py/

我发现每个留言板的回复都只是说使用该sys.path.append()函数将这个目录添加到我的路径中,然后导入它......但这正是我在我的代码中所做的,但它不起作用。

我也尝试过Ctrl-1技巧来抑制错误消息,但程序仍然无法正常运行。我收到一个错误,ImportError: No module named odbchelper。所以显然是路径没有添加,或者我多次尝试添加__init__.py文件时都遗漏了某些问题。

令人沮丧的是,如此简单的事情......从我的机器上其他地方存在的某个文件中调用东西......需要付出这么多的努力。


解决方案 1:

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

解决方案 2:

我使用的是 Eclipse Kepler 4.3 和 PyDev 3.9.2,在我的 Ubuntu 14.04 上也遇到了同样的问题。我尝试了好几个小时,尝试了以上所有方法,但都无济于事。后来我尝试了以下方法,效果很好:

  • 选择项目->右键单击-> PyDev- >删除 PyDev 项目配置

  • 文件->重新启动

我使用 Python 2.7 作为解释器,但我认为它没有效果。

解决方案 3:

我刚刚将一个 WXWindows 项目升级到 Python 2.7,但让 Pydev 识别新的解释器却一直麻烦不断。我按照上面的方法配置了解释器,并全新安装了 Eclipse 和 Pydev。我以为 Python 的某些部分可能损坏了,所以又重新安装了一遍。啊!我关闭并重新打开了项目,并在所有这些更改之间重启了 Eclipse。

终于注意到,右键点击项目,可以“移除 PyDev 项目配置”。然后,它就可以重新变成 PyDev 项目了,现在一切正常!

解决方案 4:

我修复了我的 pythonpath,当我通过控制台导入东西时一切都很顺利,但是所有这些以前未解决的导入仍然被标记为代码中的错误,无论我重新启动 eclipse 或刷新/清理项目多少次。

我右键点击项目->Pydev->移除错误标记,这个问题就解决了。不用担心,如果你的代码确实包含错误,它们会被重新标记。

解决方案 5:

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

解决方案 6:

以下是对我有用的方法(由 soulBit 建议):

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

这是迄今为止最简单的解决方案,它彻底消除了令人烦恼的事情。

解决方案 7:

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

  • 从“Python 解释器”中删除 Python 解释器并重新添加。

  • 或者只需在项目中使用的解释器中添加包含库的文件夹,在我的情况下,我使用的是“bottle”,我添加的文件夹是“c:\Python33\Lib\site-packages\bottle-0.11.6-py3.3.egg”

现在我不再看到错误,并且代码完成功能与“bottle”一样有效。

解决方案 8:

我正在运行 Eclipse 4.2.0 (Juno) 和 PyDev 2.8.1,在站点包路径中安装了一个库时遇到了这个问题。根据这个 SO 问题:

Pydev 和 *.pyc 文件

...PyDev 和 pyc 文件存在问题。就我尝试引用的那个库而言,它只提供了 pyc 文件。

以下是我为解决这个问题所做的事情:

  1. https://github.com/Mysterie/uncompyle2安装 uncompyle2

  2. 对站点包库中的 *​​.pyc 文件运行 uncompyle2。例如:

uncompyle2 -r -o /tmp /路径/到/站点包/lib

  1. 将 uncompyle2 生成的 .pyc_dis 文件重命名为 .py

  2. 将这些 *.py 文件移动/复制到站点包路径

  3. 在 Eclipse 中,选择“文件”>“重新启动”

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

解决方案 9:

我认为以下可以解决问题

  1. 将init .py添加到“~/Desktop/Python_Tutorials/diveintopython/py”文件夹

  2. 转到窗口 --> 首选项 --> PyDev --> 解释器 --> Python 解释器以删除您的 Python 解释器设置(原因是 PyDev 无法自动刷新对任何系统 PythonPath 所做的更新)

  3. 添加与之前相同的详细信息的解释器(这将使用对 PythonPath 的更新来刷新您的 Python 解释器设置)

  4. 最后,由于你的“~/Desktop/Python_Tutorials/diveintopython/py”文件夹不是标准的 PythonPath,你需要添加它。有两种方法可以做到这一点

  5. 按照 David German 的建议。但是,这仅适用于你所在的特定项目。b. 在“窗口 --> 首选项 --> PyDev --> 解释器 --> Python 解释器 --> 库子选项卡 --> 新建文件夹”下,将“~/Desktop/Python_Tutorials/diveintopython/py”添加到新的 PythonPath 中。

希望有帮助。

解决方案 10:

我在导入其他库时遇到了一些问题。尝试解决这个问题后,我通过理解 PYTHONPATH、解释器和语法,发现我虽然做了所有必要的操作,但问题仍然存在。之后,我只需在出现导入错误的文件中添加一个新的空行并保存,错误就解决了

解决方案 11:

其他答案对我都不起作用。我可以在导入的文件中看到该函数,pylint 可以找到它,并且所有测试都通过了(是的,该函数被执行了)。直到我碰巧在 site.packages 目录上运行ls并看到 module.py 文件和 module.pyi 文件时,一切都没有帮助。pyi 文件是空的,我不知道它是从哪里来的(我肯定我手指笨了,但不知道是什么),但我知道如果你有一个 pyi 文件,它就不能是空的。

我删除了该文件,重新启动了 Eclipse,一切恢复正常。

解决方案 12:

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")    
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2379  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1510  
  PLM(产品生命周期管理)系统在企业项目管理中扮演着至关重要的角色,它能够整合产品从概念设计到退役的全流程信息,提升协同效率,降低成本。然而,项目范围蔓延是项目管理过程中常见且棘手的问题,在PLM系统环境下也不例外。范围蔓延可能导致项目进度延迟、成本超支、质量下降等一系列不良后果,严重影响项目的成功交付。因此,如何在P...
plm项目经理是做什么   16  
  PLM(产品生命周期管理)系统在现代企业的产品研发与管理过程中扮演着至关重要的角色。它不仅仅是一个管理产品数据的工具,更能在利益相关者分析以及沟通矩阵设计方面提供强大的支持。通过合理运用PLM系统,企业能够更好地识别、理解和管理与产品相关的各类利益相关者,构建高效的沟通机制,从而提升产品开发的效率与质量,增强企业的市场...
plm是什么   20  
  PLM(产品生命周期管理)项目管理对于企业产品的全生命周期规划、执行与监控至关重要。在项目推进过程中,监控进度偏差是确保项目按时、按质量完成的关键环节。五维健康检查指标体系为有效监控PLM项目进度偏差提供了全面且系统的方法,涵盖了项目的多个关键维度,有助于及时发现问题并采取针对性措施。需求维度:精准把握项目基石需求维度...
plm项目管理软件   18  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用