【问题标题】:Unresolved import PyDev/IronPython未解决的导入 PyDev/IronPython
【发布时间】:2012-12-14 18:53:16
【问题描述】:

我在 Windows XP (SP3) 系统上安装了 Aptana Studio 3 和 Eclipse 4.2.1(带有 PyDev 和 PyDev 扩展)。我未能成功加载外部 .NET 程序集。给定包含命名空间 myNameSpace 的程序集 myassembly.dll,我设置了一个新项目,并选择了 IronPython 解释器。在我项目的 src 文件夹中,我创建了一个 Python 文件“Test.py”,其中包含 3 个语句:

import clr
clr.AddReferenceToFile('myassembly.dll')
import myNameSpace

我总是在使用 Aptana Studio 和 Eclipse 的第 3 条语句中得到一个未解决的导入

  1. 我已将第二条语句修改为使用clr.AddReferenceToFileAndPath('Fully qualified path and file name')

  2. 我还尝试将路径添加到外部库并将我的程序集放入该库中,结果相同。

这 3 条语句在 IronPython 控制台中执行良好。此外,.NET System 和其他模块的导入工作正常。但是大概这些模块已经在 GAC 中注册了。

这似乎是 IronPython 解释器和最终的PYTHONPATH 所独有的。我有对项目 src 文件夹和外部源文件夹的路径引用,它们都包含程序集。我在这里想念什么?

【问题讨论】:

  • 我认为 PyDev 做不到,因为它真的没有办法静态分析你的 dll!

标签: ironpython pydev


【解决方案1】:

我还没有实际测试过,但是强制内置函数通常是这种情况(请参阅http://pydev.org/manual_101_interpreter.html 的强制内置函数部分)。

不过,它不会这样做:

import clr
clr.AddReferenceToFile('myassembly.dll')

所以,如果不是真的需要,你可以编辑文件:eclipse\plugins\org.python.pydev_XXX\pysrc\pycompletionserver.py

并添加该代码(在 if sys.platform == "darwin" 之前)以便导入在强制内置函数中工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 2012-12-25
    相关资源
    最近更新 更多