как ссылаться на скомпилированный код Python в IronPython? - PullRequest
2 голосов
/ 27 октября 2010

нам нужно сослаться на код .py из C #.Это было решено с помощью IronPython 2.6

Проблема возникает из-за того, что в коде .py используется 'import customlib' - библиотека, скомпилированная в customlib.pyc

IronPython выдает ошибку: IronPython.Runtime.Exceptions.ImportException: ни один модуль с именем customlib

попытался решить:

в коде Python добавить ссылку так:

import sys
sys.path.append('c:\path to customlib')

, которая, кажется, работает для других файлов .py, ноне для .pyc

Вопросы: 1) как вы ссылаетесь на .pyc в IronPython?2) Если это невозможно, каковы альтернативы использованию .py и .pyc в C # .Net?(очевидно, у нас нет формы .py исходного кода customlib.pyc)

Код C #, который работает для .py, но не, если .py импортирует .pyc:

ScriptEngine engine = Python.CreateEngine();
ScriptScope pyScope = null;
ScriptSource ss = null;
...
pyScope = engine.CreateScope();
ss = engine.CreateScriptSourceFromFile(@"C:\test.py");
ss.Execute(pyScope);
...
int result = (int)engine.Operations.InvokeMember(pyScope, "funcName")

спасибо!

1 Ответ

2 голосов
/ 28 октября 2010

*.pyc файлы специфичны для CPython.Вам придется декомпилировать их или вызывать CPython.

Для декомпиляции попробуйте:

...