我正在使用API star 0.5.X在python 3.7中练习一些API工作,而我的python脚本找不到与python文件位于同一文件夹中的.json文件。我正在使用Atom编辑器来运行脚本并正在运行该脚本,并且正在使用venv进行工作,这对我来说还很新。
我正在使用一个辅助函数通过“ 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
第二个打印语句打印正确的文件路径,即“ employees.json”和“ app.py”所在的路径。
答案 0 :(得分:1)
由于问题是特定于您的设置的,因此很难重现或提供代码解决方案。您的代码本身看起来还不错,但是有两点可能是导致问题的原因:
/path/to/your/venv/Scripts/activate.sh
requirements.txt
之类的内容,以便在新的虚拟环境中轻松地将相同模块重新安装在另一台计算机上。答案 1 :(得分:0)
由于Atom编辑器的工作方式,这是一个问题。通过切换到vim解决了该问题。
我只是部分理解,但显然这与Atom有关,该Atom具有用于工作文件的单独的temp目录,或类似的性质。使用vim编辑脚本,然后在终端中调用它时,问题已解决。