Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在brightway2中指定自定义数据目录_Python - Fatal编程技术网

Python 在brightway2中指定自定义数据目录

Python 在brightway2中指定自定义数据目录,python,Python,虽然在brightway2中指定自定义数据目录不是标准,但有些人可能仍然需要这样做。一种方法是将BRIGHTWAY_DIR path变量设置为此自定义目录(请参见此处:),但这需要在执行python脚本之前完成 因此,不要事先像这样设置目录路径(例如Windows): 设置BRIGHTWAY2_DIR=C:/…/MyDataDirectory 是否也可以在python中设置/更改brightway目录?试试以下方法: import os from brightway2 import projec

虽然在brightway2中指定自定义数据目录不是标准,但有些人可能仍然需要这样做。一种方法是将BRIGHTWAY_DIR path变量设置为此自定义目录(请参见此处:),但这需要在执行python脚本之前完成

因此,不要事先像这样设置目录路径(例如Windows): 设置BRIGHTWAY2_DIR=C:/…/MyDataDirectory

是否也可以在python中设置/更改brightway目录?

试试以下方法:

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")
它使用的框架基本上与之相同。

尝试以下方法:

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

它使用的框架与基本相同。

?谢谢!如果我对os.mkdir(projects.\u base\u logs\u dir)行进行注释(该目录已经存在,由assert语句断言),则此操作有效;谢谢如果我对os.mkdir(projects.\u base\u logs\u dir)行进行注释(该目录已经存在,由assert语句断言),则此操作有效;