1

PySB をインストールして動作させようとしています。ダウンロードしたドキュメントに添付されているサンプルを実行しましたが、動作しません。

import pysb as psb
from pysb.integrate import odesolve as psb
from pylab import linspace, plot, xlabel, ylabel, show:   

psb.Model()

# Declare the monomers
psb.Monomer('L', ['s'])
psb.Monomer('R', ['s'])

# Declare the parameters
psb.Parameter('L_0', 100)
psb.Parameter('R_0', 200)
psb.Parameter('kf', 1e-3)
psb.Parameter('kr', 1e-3)

# Declare the initial conditions
psb.Initial(L(s=None), L_0)
psb.Initial(R(s=None), R_0)

# Declare the binding rule
psb.Rule('L_binds_R', L(s=None) + R(s=None) <> L(s=1) % R(s=1), kf, kr)

# Observe the complex
psb.Observable('LR', L(s=1) % R(s=1))

if __name__ == '__main__':
    print __doc__
    # Simulate the model through 40 seconds
    time = linspace(0, 40, 100)
    print "Simulating..."
    x = psb.odesolve(model, time)
    # Plot the trajectory of LR
    plot(time, x['LR'])
    xlabel('Time (seconds)')
    ylabel('Amount of LR')
    show()

私が持っている最初のエラーは次のpsb.odesolve()とおりです。

AttributeError: 'function' object has no attribute 'Model'

アドバイスいただけますか?ありがとう

pysb.org のコードを試してみたところ、次のエラーが発生しました。

Traceback (most recent call last):
  File "C:\Users\Ruda\Desktop\t2.py", line 33, in <module>
    x = odesolve(model, time)
  File "C:\Python27\lib\site-packages\pysb\integrate.py", line 298, in odesolve
    solver = Solver(model, tspan, integrator, **integrator_options)
  File "C:\Python27\lib\site-packages\pysb\integrate.py", line 86, in __init__
    pysb.bng.generate_equations(model)
  File "C:\Python27\lib\site-packages\pysb\bng.py", line 261, in generate_equations
    lines = iter(generate_network(model).split('\n'))
  File "C:\Python27\lib\site-packages\pysb\bng.py", line 220, in generate_network
    bng_file = open(bng_filename, 'w')
IOError: [Errno 22] invalid mode ('w') or filename: '<interactive>_5136_5952_temp.bngl'
4

3 に答える 3

1

http://pysb.org/の例と比較して、マイナーな構文エラーと異なるインポートがあるようです。また、PySB のドキュメントには、次のことを行う必要があると記載されています。

from pysb import *
Model()

物事を初期化するために、そのコンストラクトは明らかmodelにモジュールの名前空間に変数を作成します。微調整を開始する前に、pysb サンプルをそのままコピーし、適切に動作することを確認することをお勧めします。

于 2013-07-26T17:18:01.947 に答える
1

PySB 開発者はこちら。

問題は次のとおりです。

import pysb as psb
from pysb.integrate import odesolve as psb
psb.Model()

pysb を "psb" としてインポートしましたが、関数 odesolveも psb としてインポートしました。したがって、psb.Model() を呼び出すと、関数 odesolve でクラス コンストラクター "Model" を呼び出そうとしています。これが、「「関数」オブジェクトに属性「モデル」がありません」というエラーが発生する理由です。

この例のために、私はただ行うことをお勧めします

from pysb import *
from pysb.integrate import odesolve

Component コンストラクターの前にある psb 修飾子を削除します。

また、pysb@librelist.org に電子メールを送信して、pysb メーリング リストにサインアップすることをお勧めします。そこでは、お客様の質問に迅速に対応できます。他にご不明な点がございましたら、お問い合わせください。

一番、

ジョン・バックマン

于 2013-08-11T20:47:04.710 に答える