2017-10-20 3 views
1

brightway2でカスタムデータディレクトリを指定することは標準ではありませんが、依然としてそうする必要があります。これを行う1つの方法は、BRIGHTWAY_DIRパス変数をこのカスタムディレクトリ(ここではhttps://docs.brightwaylca.org/faq.html#setting-brightway2-dir-in-a-virtual-environment参照)に設定することですが、これはPythonスクリプトを実行する前に実行する必要があります。brightway2でカスタムデータディレクトリを指定する

ので、代わりのこの事前のようなディレクトリ・パス(たとえば、Windows用)を設定する: セットBRIGHTWAY2_DIR = C:/.../ MyDataDirectory

も内からbrightwayディレクトリを変更/設定する可能性がありますPython?

+0

https://docs.python.org/3/library/os.html#os.putenv? –

答えて

0

これを試してみてください:

import os 
from brightway2 import projects 
from bw2data.project import ProjectDataset, create_database 


def switch_directory(dirpath): 
    assert os.path.isdir(dirpath) 
    projects._base_data_dir = dirpath 
    projects._base_logs_dir = os.path.join(dirpath, "logs") 
    os.mkdir(projects._base_logs_dir) 
    projects.db.close() 
    projects.db = create_database(
     os.path.join(projects._base_data_dir, "projects.db"), 
     [ProjectDataset] 
    ) 
    projects.set_current("default") 

それは基本的にtest runnerと同じフレームワークを使用しています。

+0

ありがとう!これは、os.mkdir(projects._base_logs_dir)行にコメントすると(assert文によってアサートされているディレクトリがすでに存在している)、動作します。 – bst

関連する問題