Короткая версия заключается в том, что это не является проблемой кода (хотя, если у кого-то есть программный обходной путь, который позволяет мне сохранить структуру проекта, это тоже будет работать). Когда я пытаюсь импортировать какой-либо модуль при определенных обстоятельствах, он не работает должным образом.
import sys
sys.path.append('C:\Python26\Lib')
sys.path.append('C:\Users\<user>\Documents\Visual Studio 2010\Projects\<Solution>\Simulation')
import time # errors out
from XMLRPCBridge.python_ClientAPI.AsyncXMLRPCClient import AsyncXMLRPCClient, RPCPriority # if I remove the previous line this one errors instead
файл Python загружается с использованием следующего
public class StateSimBridge
{
private ScriptScope pythonModule = Python.CreateRuntime().UseFile("..\\..\\..\\Simulation\\AsyncClientPatch.py");
// errors out before getting any farther than this
...
}
когда я создаю экземпляр класса из фиктивного главного потока в проекте, все это прекрасно работает
Однако, когда я загружаю его косвенно из другого проекта, я получаю ошибки об ошибках «нет такого модуля».
public sealed class SimulationDriver
{
private static readonly Lazy<SimulationDriver> lazy = new Lazy<SimulationDriver>(() => new SimulationDriver());
private StateSimBridge.StateSimBridge simulationBridge = new StateSimBridge.StateSimBridge("Garmsir");
static SimulationDriver()
{
}
private SimulationDriver()
{
}
public static SimulationDriver Instance
{
get { return lazy.Value; }
}
...
}
Я даже не уверен, что еще нужно проверить на этом этапе, поэтому любая помощь приветствуется.
Редактировать: Для ясности, я проверял sys.path в обоих случаях, и обе записи были успешно добавлены. Что меня смущает, так это то, что между IronPython будет разница между этими двумя обстоятельствами.