2017-10-20 1 views
1

Obwohl die Angabe eines benutzerdefinierten Datenverzeichnisses in brightway2 nicht der Standard ist, müssen einige Benutzer dies dennoch tun. Eine Möglichkeit, dies zu tun, besteht darin, die Pfadvariable BRIGHTWAY_DIR auf dieses benutzerdefinierte Verzeichnis zu setzen (siehe hier: https://docs.brightwaylca.org/faq.html#setting-brightway2-dir-in-a-virtual-environment), dies muss jedoch geschehen, BEVOR ein Python-Skript ausgeführt wird.Angeben eines benutzerdefinierten Datenverzeichnisses in brightway2

Anstatt also den Verzeichnispfad der Einstellung (zB für Windows) wie diese vorher: Satz BRIGHTWAY2_DIR = C: /.../ MyDataDirectory

Gibt es auch eine Möglichkeit der Einstellung/Änderung des Brightway Verzeichnis aus Python?

+0

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

Antwort

0

Versuchen Sie folgendes:

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") 

Es nutzt grundsätzlich den gleichen Rahmen wie die test runner.

+0

danke! Dies funktioniert, wenn ich die Zeile os.mkdir (projects._base_logs_dir) (das Verzeichnis ist bereits vorhanden, das durch die assert-Anweisung aktiviert wird); – bst

Verwandte Themen