Нужно запустить код питона в c#, а именно использовать библиотеку sympy, нашел топик, который отвечает на мой вопрос http://stackoverflow.com/questions/6721736/c-sharp-library-for-algebra-simplification-and-solving . В ответе, который дал Damon Achey 2-ым пунктом идет установка sympy.exe, но в этом вся и проблема, при попытке установки sympy дает ошибку
no python installation found in the registry
Немного поискав в гугле решение данной проблемы нашел несколько ответов :
HKLM\SOFTWARE\ , а нужно в HKLM\SOFTWARE\Wow6432Node\), у меня с этим проблем нет, после установки папка есть в HKLM\SOFTWARE\Wow6432Node\.HKEY_CURRENT_USER (тобишь, только для данного юзера), а нужно HKEY_LOCAL_MACHINE, как вы уже догадались, у меня записано в HKEY_LOCAL_MACHINE , хотя и в HKEY_CURRENT_USER есть записьМожете помочь решить проблему ?
Попытался воспроизвести и получил тот же самый результат. Детально разбираться в чем причина не стал, возможно у вас система другой архитектуры.
Поэтому поступил "по старинке":
Запустил пример:
Install-Package IronPythonopen IronPython.Hosting
let options = ["FullFrames", true :> obj] |> dict
let engine = Python.CreateEngine options
let paths = engine.GetSearchPaths()
paths.Add @"C:\Program Files (x86)\IronPython 2.7\Lib"
engine.SetSearchPaths paths
// expression to simplify
let expr = "0 + 1 * 1 * (x - 2) / (1 - 2) * (x - 3) / (1 - 3) * (x - 4) / (1 - 4)";
let scope = engine.CreateScope()
let script = engine.CreateScriptSourceFromString(@"
import codecs
def my_unicode_escape_decode(x):
return x
codecs.unicode_escape_decode = my_unicode_escape_decode
from sympy import *
import clr
from System import String
expr = simplify('" + expr + @"')
result = clr.Convert(expr, String)
")
script.Execute scope |> ignore
scope.GetVariable "result" |> printfn "%A"
Мне пришлось изменить код, чтобы заставить его работать, но возможно у вас питон проглотит и исходную версию.
Ваша коллекция paths может отличатся - для удобства я скопировал установленные библиотеки туда, где находится IronPython.
Если будут падать какие-то исключения - пингуйте меня в чате
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости