110

我对 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")

这很好用,但是我希望我的代码的下一行是:

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文件的所有排列都错过了一些问题。

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

4

11 回答 11

137

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

于 2011-01-08T02:26:19.563 回答
53

我正在使用 eclipse kepler 4.3、PyDev 3.9.2 和我的 ubuntu 14.04 我遇到了同样的问题。我尝试并花了几个小时,上面所有的大多数选项都是徒劳的。然后我尝试了以下很棒的方法:

  • 选择Project -> RightClick-> PyDev -> Remove PyDev Project Config
  • 文件->重新启动

我使用 Python 2.7 作为解释器,尽管我认为它不起作用。

于 2015-03-30T16:07:52.320 回答
42

我刚刚将一个 WXWindows 项目升级到 Python 2.7,并且让 Pydev 识别新的解释器没有尽头。做了与上面配置解释器相同的事情,重新安装了 Eclipse 和 Pydev。认为python的某些部分一定已经损坏,所以我重新安装了所有东西。啊!关闭并重新打开项目,并在所有这些更改之间重新启动 Eclipse。

最后注意到您可以通过右键单击项目来“删除 PyDev 项目配置”。然后又可以做成PyDev项目了,简直是金子!

于 2011-06-01T11:54:34.967 回答
18

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

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

于 2012-12-04T18:38:59.673 回答
12

项目-->属性-->pydev-pythonpath-->外部库-->添加源文件夹,添加项目的PARENT FOLDER。然后重启eclipse。

于 2014-03-25T06:44:28.260 回答
5

这对我有用(由 soulBit 建议):

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

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

于 2014-06-13T02:43:31.600 回答
1

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

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

现在我不再看到错误了,代码完成功能也适用于“瓶子”。

于 2013-07-05T07:04:07.617 回答
1

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

Pydev 和 *.pyc 文件

... PyDev 和 pyc 文件存在问题。在我试图引用的特定库的情况下,所提供的只是 pyc 文件。

这是我为解决这个问题所做的:

  1. 从https://github.com/Mysterie/uncompyle2安装 uncompyle2
  2. 对站点包库中的 *​​.pyc 文件运行 uncompyle2。例子:

    uncompyle2 -r -o /tmp /path/to/site-packages/lib

  3. 将 uncompyle2 生成的 *.pyc_dis 文件重命名为 *.py
  4. 将这些 *.py 文件移动/复制到站点包路径
  5. 在 Eclipse 中,选择文件 > 重新启动

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

于 2013-09-03T14:41:00.627 回答
0

以下,在我看来将解决问题

  1. init .py 添加到“~/Desktop/Python_Tutorials/diveintopython/py”文件夹
  2. 转到 Window --> Preferences --> PyDev --> Interpreters --> Python Interpreter 以删除您的 Python Interpreter 设置(原因是 PyDev 无法自动刷新对任何系统 PythonPath 所做的任何更新)
  3. 使用与以前相同的详细信息添加解释器(这将使用对 PythonPath 进行的更新来刷新您的 Python 解释器设置)
  4. 最后,由于您的“~/Desktop/Python_Tutorials/diveintopython/py”文件夹不是标准的 PythonPath,您需要将其添加进去。有两种方法可以做到

一个。根据 David German 的建议。但是,这仅适用于您在 b 中的特定项目。在 Window --> Preferences --> PyDev --> Interpreters --> Python Interpreter --> Libraries subtab --> NewFolder 下将 "~/Desktop/Python_Tutorials/diveintopython/py" 添加到新的 PythonPath

希望能帮助到你。

于 2014-10-05T02:02:47.170 回答
0

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

于 2019-12-19T22:21:15.410 回答
-1
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")    
于 2018-01-25T19:48:47.373 回答