为了账号安全,请及时绑定邮箱和手机立即绑定

python导入一个模块,收到系统找不到指定路径的错误

python导入一个模块,收到系统找不到指定路径的错误

紫衣仙女 2021-07-30 09:45:40
我正在使用 python 3.7.1 并且在我的项目中有这样的结构project/├── plugins│   ├── __init__.py│   └── plugin_one│       ├── __init__.py│       ├── process_json.py│       └── data│           └── cities│               └── paris.json│               └── new_york.json└── test1.py当我写“process_json.py”时,我将“data/cities”目录中的json文件一一读取,并打印出json字符串。# do_plugin_one.pyimport jsonimport osdef process_json_string():    file_path = 'data/cities'    for filename in os.listdir(file_path):        if filename.endswith('.json'):            with open(os.path.join(search_path, filename)) as f:                print(json.load(f))process_json_string()# output is a json string如果我直接运行这个脚本文件,它工作正常。但是我想要实现的是将 process_json.py 导入到 test1.py 中,如下所示:# test1.pyfrom plugins.plugin_one.process_json import process_json_stringprocess_json_string()当我尝试这样做时,我得到了:FileNotFoundError: [WinError 3] The system cannot find the path specified: 'data/cities'如果我理解正确,当由“test1.py”导入时,工作路径位于“test1.py”所在的位置。所以我试过:# process_json.py...def process_json_string():    file_path = 'plugins/plugin_one/data/cities'...它终于奏效了。但是,我想保留该文件以便能够单独运行。在搜索文档和页面后,我仍然不知道如何实现这一点。我什至试过:# process_json.py...file_path = 'plugins/plugin_one/data/cities'...if __name__ == '__main__':    file_path = 'data/cities'...我不认为这样的事情是最佳的。我也尝试使用相对路径,但仍然没有运气。任何帮助,将不胜感激!谢谢!
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 347 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信