这就是我所拥有的:
Project A
----data_I_need.p
Project B
----use_data.py
如果data_I_need.p
是源文件(在我的路径中),我可以轻松地将其导入Project B
。非源文件是否存在这种方法?
现在,我必须通过
完成此操作with open('C:/......./data_I_need.p', 'rb') as data:
Project A
在我的路径中(在PyCharm中定义为“内容根目录”)。我可以从Project A
输入源文件。
答案 0 :(得分:0)
总而言之,问题在于可以导入PYTHONPATH中的任何Python文件,但是如果没有显式路径,则无法加载资源(非Python文件)。
Project_A
----some_module.py
----data_I_need.p
Project_B
----use_data.py
这是一个解决方案。在Project B/use_data.py
中,包括以下内容。
import os
import pathlib
import pickle
# full path to Project_B
here = os.path.dirname(__file__)
# path to folder *above* Project_B ---- joined to Project_A
PROJECT_A = os.path.join(*pathlib.Path(here).parts[:-1], 'Project A')
with open(os.path.join(PROJECT_A, 'data_i_need.p')) as resource:
var = pickle.load resource
即使您正在使用来自两个不同操作系统的共享驱动器(例如OneDrive),这也将起作用。
(可选)您可以只设置一个“ shared_resources”文件夹,并在该文件夹中包含一个python脚本来访问资源,再次从os.path.dirname(__file__)
开始工作,然后浏览相对路径。