flask/pythonanywhere - FileNotFoundError: [Errno 2] when trying to create a new folder

flask/pythonanywhere - FileNotFoundError: [Errno 2] when trying to create a new folder

我在将 Flask 应用程序部署到 pythonanywhere 时遇到问题。

我有一个注册表单,当用户点赞时,我想创建一个文件夹,里面有用户名和一个 .josn 文件,用于存储用户稍后输入的其他数据。

它在我的本地服务器上完美运行,但是当将项目上传到 pyhtonanywhere 时,出现以下错误:

FileNotFoundError: [Errno 2] 没有这样的文件或目录: '/home/XXX/app/static/JsonData/foldername'

好像找不到路径,但不知道如何解决。这是我的代码:

        ## ----------- CREATE A FOLDER WITH USERNAME (TO STORE JSON FILES) --------- ##
        ## creates a folder in JsonData folder to store the project data files ##
        ## the folder name is = username used to signup ##
        cwd=os.getcwd()
        path=os.path.join(cwd, new_user.username)
        os.mkdir(path)

        ## ----------- CREATES FIRST JSON FILE TO STORE PROJECT DATA --------- ##
        # creates a first json file called username_BaseScenario stored in the previous folder
        jsonName=formSignup.username.data + '_BaseScenario.json'
        filePath=os.path.join(path, jsonName)

       ## ---- CREATES A NEW JSON FILE TO STORE PROJECT DATA ------ ##
        #create a dictionary that will be transformed into a json file
        newProject={
                   bunch of lines code for the dictionary
        }

        #converts the dict to json and store it in the fileName path
        with open(filePath, 'w') as outfile:
            json.dump(newProject, outfile)

我正在使用 getcwd(),我认为它是一个绝对路径并且应该可以工作,但我不知道。任何帮助都感激不尽。我阅读了一些关于类似问题的答案,但无法解决,我尝试对路径进行编码,但结果相同。所以它一定是别的东西

当前工作目录可能不是您期望的目录。最好是 使用 os.path.dirname(__file__) 获取执行文件的路径 参考点。

虽然在 PythonAnywhere 上,您可以在网页上操作项目的 CWD (工作目录设置).

另一件事是,您显示的错误意味着 '/home/XXX/app/static/JsonData/ 不存在,因此与代码不匹配 你展示了(错误来自不同的代码或者你改变了 同时编码,也许?)。