Вам нужно ввести код трубы, если __name__ == '__main__' part. ( Почему? ) И измените p2.recv на p1.recv
import multiprocessing
def ProcessCreator(pipe):
pipe.send("hello from other process")
if __name__ == "__main__":
multiprocessing.freeze_support()
p1, p2 = multiprocessing.Pipe()
proc = multiprocessing.Process(target = ProcessCreator, args = (p2,))
proc.start()
print p1.recv()
Действительно, Сципи борется с комплексными числами. Тем не менее, проект под названием mpmath может решить вашу проблему. Здесь: http://mpmath.org/ . Раньше шел с sympy (sympy.org). Вы можете найти документацию здесь : Это решение работает для меня:
from mpmath import findroot
import numpy as np
import scipy.io as spio
params = dict()
params['cbeta'] = 0.96
params['cdelta'] = 0.1
params['calpha'] = 0.33
params['cgamma'] = 1.2
params['clambda']= 1.0
params['csigma'] = 0.8
params['etau'] = 0.0
def steady_s(c,y,k,g,r):
# unpacking paramters
cbeta = params['cbeta']
cdelta = params['cdelta']
calpha = params['calpha']
cgamma = params['cgamma']
clambda= params['clambda']
csigma = params['csigma']
# guesses for initial values
#c = vars0[0]
#y = vars0[1]
#k = vars0[2]
#g = vars0[3]
#r = vars0[4]
# == functions to minimize to find steady states == #
f = [0,0,0,0,0]
# HH Euler
f[0] = (1.0/c)*cbeta*(r + 1.0 - cdelta) - (1.0+g)/c
# Goods market clearing
f[1] = y - c - k*(1.0 + g) + k*(1.0-cdelta)
# Capital Market clearing
f[2] = r - (k)**(calpha-1.0)*calpha**2.0
# production function for final good
f[3] = y - k**calpha
# growth rate
pi = (calpha - 1.0) * k**calpha #small pi, this isnt actual profits
f[4] = g - (cgamma - 1.0) * clambda * (csigma*clambda*pi)**(csigma/(1.0-csigma))
return f
# == Initial Guesses == #
vars0 = list(np.ones((5,)))
# == Solving for Steady State == #
xss = findroot(steady_s, vars0)