clr.AddReference('example_file') - 无法找到程序集

时间:2013-01-25 11:28:25

标签: python .net python-2.7 ironpython

我正在尝试添加对" example_file.dll"的引用使用clr模块中的AddReference(' example_file')方法:

>>>import clr
>>>clr.AddReference('example_file')

结果我得到了:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
System.IO.FileNotFoundException: Unable to find assembly 'example_file'.

at Python.Runtime.CLRModule.AddReference(String name)

所有文件都位于当前工作目录中,sys.path如下所示:

>>> sys.path
['', 'C:\\Python27\\lib\\site-packages\\pip-1.2.1-py2.7.egg', 'C:\\Python27', 'C
:\\Windows\\system32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib',
'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27\\lib\\
site-packages', 'C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\']

此外,结果如下:

>>>clr.FindAssembly('example_file')

我得到了

u'example_file.dll 

问题每天都在发生。我感到困惑,因为之前它运作良好 - 我不知道会对此产生什么影响。 我正在使用Windows 7 x64,python 2.73和.Net framework 4

1 个答案:

答案 0 :(得分:0)

这里的信息还不够多,但是(至少)有两件事需要考虑:

  1. 您没有设置其他与Python相关的环境变量。例如,使用虚拟环境或让Python指向其他位置。 Please check(如果设置了PYTHONHOMEPYTHONPATH
  2. 您尝试加载的DLL具有与Python解释器相同的位大小。即如果您使用的是64位Python,则可能需要加载(但不总是)加载64位DLL。
  3. 在您的字符集中正确读取了路径规范。
    sys.path.append(r"C:\Program Files\SomeApi")