【问题标题】:Cannot access file on pythonanywhere无法访问 pythonanywhere 上的文件
【发布时间】:2015-06-30 05:03:26
【问题描述】:

我有一个 django 项目在我的本地服务器上完美运行并返回响应。我现在试图在 pythonanywhere 上运行它,它一直说没有这样的目录或文件。我最初使用os.path.dirname("__file__"),但后来我将其更改为绝对地址,即“/home/username/projectname/filename”无济于事。后一种方法是网络上唯一建议的方法,但它仍然不起作用。是否有特殊的语法可以访问 pythonanywhere 中的文件?或者你有什么建议吗?谢谢。

以下是引发错误的行:

with open("home/<username>/<project>/layer.pem", "r") as rsa_priv_file:

目录结构:

【问题讨论】:

  • 您是否在&lt;username&gt;&lt;project&gt; 字段中输入您的实际用户名和项目?
  • 你一定在这个世界上见过这么多:D,是的,我正在输入真实姓名。
  • 你能显示你的应用的目录和文件结构吗?
  • 我刚刚做了,抱歉我不得不编辑部分内容。

标签: python django pythonanywhere


【解决方案1】:

如果这个with open("home/&lt;username&gt;/&lt;project&gt;/layer.pem", "r") as rsa_priv_file: 是您正在使用的实际代码,那么您在开头缺少/。您实际使用该代码要求的不是 layer.pem 的绝对路径,而是植根于当前目录的相对路径。

另外,os.path.dirname("__file__") 不起作用,因为您引用了__file__。你要的是一个名为“__file__”的文件的目录名(这将是一个空字符串),而不是当前文件的目录名。

【讨论】:

  • 感谢 Glenn,我会尝试,但在 file 的情况下,除非我在本地服务器上引用它,否则它不会起作用。
  • 它可能在不引发异常的意义上“工作”,但它没有做任何接近你期望的事情。
  • 正确,但我确保我得到了一个返回值,即我在控制台上的函数之外检查了它。没有引号会引发未定义的变量错误,并且带有引号会打开文件。可能是jupyter吗?还是窗户?我正在使用 2.7。
  • 啊。在 Jupyter 中,__file__ 未定义。我不确定他们为什么决定不设置它,但我想这是有充分理由的。
  • 有趣!非常感谢你的帮助,今晚我会试试你的指导方针。
猜你喜欢
  • 2021-08-05
  • 2014-01-02
  • 2011-07-30
  • 2015-11-16
  • 1970-01-01
  • 1970-01-01
  • 2017-09-21
  • 2020-11-19
相关资源
最近更新 更多