我正在使用API star 0.5.X在Python3.7中练习一些API工作,我的python脚本找不到与python文件位于同一文件夹中的.json文件。我正在使用Atom编辑器编写和运行脚本,我正在使用一个venv,这对我来说是相当新的。在
我使用一个helper函数,使用“with open()”语句加载JSON数据。我尝试过使用相对和绝对文件路径,但在这两种情况下都无法找到文件。我尝试过使用终端和MacOS finder在Atom中启动该文件。 到目前为止,我得到的是:
import json
from typing import List
import os
from apistar import App, Route, types, validators
from apistar.http import JSONResponse
print(os.getcwd())
os.chdir('/Users/{myusernamehere}/100days/apistar')
print(os.getcwd())
#helpers
def _load_employee_data():
with open('employees.json') as f:
employees = json.loads(f.read())
return employees
第二个print语句打印正确的文件路径,即雇员.json'和'应用程序副本'位于。在
这是一个由Atom编辑器的工作方式引起的问题。通过切换到vim解决了这个问题。在
我只理解了一部分,但显然这与Atom有一个单独的temp目录用于工作文件有关,或者类似的东西。当使用vim编辑脚本,然后在终端中调用它时,问题就解决了。在
由于问题是特定于您的设置的,所以很难在代码中重现或提供解决方案。您的代码本身看起来不错,但有两种情况可能是导致您的问题的原因:
/path/to/your/venv/Scripts/activate.sh
如果你这样做了,你应该期望你的脚本能找到它在虚拟环境中开发时所使用的库。确保在项目中包含类似
requirements.txt
的内容,以便在新的虚拟环境中,在不同的计算机上轻松地重新安装相同的模块。在相关问题 更多 >
编程相关推荐