使用 brightway 导入 ecoinvent 3.2
importing ecoinvent 3.2 with brightway
我在使用 Brightway2 导入 Ecoinvent 3.2 时遇到了一些问题,我正在关注 example notebook:
from brightway2 import *
fp = 'D:\LCAdb\e_3.2_cutoff_lci\datasets'
projects.set_current("myproject")
bw2setup()
ei = SingleOutputEcospold2Importer(fp, "ecoinvent 3.2 cutoff")
我收到一条似乎阻止导入过程的警告消息
C:\Users\@@@\Anaconda3\envs\bw3\lib\site-packages\bw2data\project.py:157:
UserWarning:
Read only project
This project is being used by another process and no writes can be
made until:
1. You close the other program, or switch to a different project, and
2. You call projects.enable_writes
and get the response True
.
If you are **sure** that this warning is incorrect, call
`projects.enable_writes(force=True)` to enable writes.
warnings.warn(READ_ONLY_PROJECT)
如果我运行
projects.enable_writes(force=True)
我又收到一个权限错误
PermissionError Traceback (most recent call
last) in ()
----> 1 projects.enable_writes(force=True)
C:\Users\@@@\Anaconda3\envs\bw3\lib\site-packages\bw2data\project.py
in enable_writes(self, force)
234 """Enable writing for the current project."""
235 if force:
--> 236 os.remove(os.path.join(self.dir, "write-lock"))
237 self.read_only = not self._lock.acquire(timeout = 0.05)
238 if not self.read_only:
PermissionError: [WinError 32] El proceso no tiene acceso al archivo
porque está siendo utilizado por otro proceso:
'C:\Users\@@@\AppData\Local\pylca\Brightway3\myproject.4da39212894ad06eb7c95810f8a2a6b0\write-lock'
翻译后的 winerror 类似于 "the process does not have access to the file because the file is being used by other process"
我没有同时使用其他 Brightway 环境 运行,我最近更新了 Brightway2,所以我不知道问题出在哪里。有什么想法吗?
谢谢!
更新 1:我在另一台计算机上安装了 brightway2,但发现了相同的警告消息。尽管有消息,导入似乎是正确的。加载并写入数据库后,如果我再次打开项目,数据库仍然存在。
在以前的笔记本电脑中,导入过程似乎对机器来说太多了(华硕 S56CB,windows 10 GB 和 6 GB 内存)。等待结果 40 分钟后,我通常会绝望并杀死它。我会尝试重新安装 python...
见how do I resolve errors about read-only projects?。
Brightway2 中的锁定是通过 fasteners 库完成的。如果你有两个 python 解释器 运行,或者没有正确退出 ipython 笔记本(你应该在完全关闭进程之前关闭或重新启动内核),将会有一个锁定文件在项目目录中,您将收到有关只读项目的错误。顺便说一句,仅关闭 ipython 笔记本不足以关闭 python 内核或释放锁。
很难诊断为什么这些错误会与您报告的内容一起发生。尝试以下操作:
1) 看看能不能把ecoinvent导入到新项目中。
2) 尝试重新启动计算机。
3) 如果你不能让任何东西工作,你可以在命令行或资源管理器中删除文件 C:\Users\@@@\AppData\Local\pylca\Brightway3\myproject.4da39212894ad06eb7c95810f8a2a6b0\write-lock
window.
4) 按照@Mpa 在下一个答案中的建议进行操作,然后设置 projects.read_only = False
.
我过去曾 运行 参与过这件事,肯定是因为@Chris 提到的原因。
您可以使用projects.read_only = False
强制写入数据。请确保这确实是您想要做的。您不会想要这样做,例如,如果您通过两个可能尝试同时写入数据的不同内核访问同一个项目。
我在使用 Brightway2 导入 Ecoinvent 3.2 时遇到了一些问题,我正在关注 example notebook:
from brightway2 import *
fp = 'D:\LCAdb\e_3.2_cutoff_lci\datasets'
projects.set_current("myproject")
bw2setup()
ei = SingleOutputEcospold2Importer(fp, "ecoinvent 3.2 cutoff")
我收到一条似乎阻止导入过程的警告消息
C:\Users\@@@\Anaconda3\envs\bw3\lib\site-packages\bw2data\project.py:157: UserWarning: Read only project
This project is being used by another process and no writes can be made until: 1. You close the other program, or switch to a different project, and 2. You call
projects.enable_writes
and get the responseTrue
.If you are **sure** that this warning is incorrect, call `projects.enable_writes(force=True)` to enable writes.
warnings.warn(READ_ONLY_PROJECT)
如果我运行
projects.enable_writes(force=True)
我又收到一个权限错误
PermissionError Traceback (most recent call last) in () ----> 1 projects.enable_writes(force=True)
C:\Users\@@@\Anaconda3\envs\bw3\lib\site-packages\bw2data\project.py in enable_writes(self, force) 234 """Enable writing for the current project.""" 235 if force: --> 236 os.remove(os.path.join(self.dir, "write-lock")) 237 self.read_only = not self._lock.acquire(timeout = 0.05) 238 if not self.read_only:
PermissionError: [WinError 32] El proceso no tiene acceso al archivo porque está siendo utilizado por otro proceso: 'C:\Users\@@@\AppData\Local\pylca\Brightway3\myproject.4da39212894ad06eb7c95810f8a2a6b0\write-lock'
翻译后的 winerror 类似于 "the process does not have access to the file because the file is being used by other process"
我没有同时使用其他 Brightway 环境 运行,我最近更新了 Brightway2,所以我不知道问题出在哪里。有什么想法吗?
谢谢!
更新 1:我在另一台计算机上安装了 brightway2,但发现了相同的警告消息。尽管有消息,导入似乎是正确的。加载并写入数据库后,如果我再次打开项目,数据库仍然存在。
在以前的笔记本电脑中,导入过程似乎对机器来说太多了(华硕 S56CB,windows 10 GB 和 6 GB 内存)。等待结果 40 分钟后,我通常会绝望并杀死它。我会尝试重新安装 python...
见how do I resolve errors about read-only projects?。
Brightway2 中的锁定是通过 fasteners 库完成的。如果你有两个 python 解释器 运行,或者没有正确退出 ipython 笔记本(你应该在完全关闭进程之前关闭或重新启动内核),将会有一个锁定文件在项目目录中,您将收到有关只读项目的错误。顺便说一句,仅关闭 ipython 笔记本不足以关闭 python 内核或释放锁。
很难诊断为什么这些错误会与您报告的内容一起发生。尝试以下操作:
1) 看看能不能把ecoinvent导入到新项目中。
2) 尝试重新启动计算机。
3) 如果你不能让任何东西工作,你可以在命令行或资源管理器中删除文件 C:\Users\@@@\AppData\Local\pylca\Brightway3\myproject.4da39212894ad06eb7c95810f8a2a6b0\write-lock
window.
4) 按照@Mpa 在下一个答案中的建议进行操作,然后设置 projects.read_only = False
.
我过去曾 运行 参与过这件事,肯定是因为@Chris 提到的原因。
您可以使用projects.read_only = False
强制写入数据。请确保这确实是您想要做的。您不会想要这样做,例如,如果您通过两个可能尝试同时写入数据的不同内核访问同一个项目。