【问题标题】:Permission Error running through Notepad++通过 Notepad++ 运行的权限错误
【发布时间】:2013-08-18 19:48:41
【问题描述】:

我有一个 Python 2.7 程序,它在最后将一组数据打印到一个文本文件中。如果我将文件导入 Pythonshell,该程序可以完美运行,但如果我尝试使用 Crl+R(也使用 Pythonshell)直接从 Notepad++ 运行脚本,则会出现错误:

Traceback (most recent call last):
  File "C:\Python27\ZeemanLab.py", line 140, in <module>
    with open("Mercury{}at{}A".format(wavelength, B), "w") as f:
IOError: [Errno 13] Permission denied: 'Mercury55at55A'

问题行:

with open("Mercury{}at{}A".format(wavelength, B), "w") as f: 
    f.write('A {}nm lamp in a {}A Magnetic field \n'.format(wavelength, B))

我不知道是什么造成了这种差异。

【问题讨论】:

    标签: python permissions


    【解决方案1】:

    添加和打印os.getcwd() 的结果可能有助于您进行故障排除。也许 Notepad++ 正在从不同的工作目录运行脚本?您是否尝试过使用像 C:\temp\Mercury{}at{}A 这样的绝对路径名?

    【讨论】:

    • 绝对路径是我的第一个想法。尽管 \ 需要加倍,但它最终确实起作用了。例如。 C:\\用户
    【解决方案2】:

    您需要更改文件的权限,或将其移至具有正确权限的目录。 在windows 7 英语下,这样做的方法是:

    1. 左键点击文件

    2. 点击属性

    3. 新闻安全

    4. 在“组或用户名:”中,选择您的用户并点击编辑。

    5. 设置读写权限。

    如果不能,您可能必须更改为 Adminster 用户。然而,最简单的解决方案就是移动项目的文件夹,然后在文档、桌面或其他文件夹中运行它。

    【讨论】:

    • 并不总是有效。相信我,在处理 Windows 文件权限时,Python 是最糟糕的语言。
    • 这就是为什么当我在 Windows 上工作时,我只有一个文件夹来存放我的所有项目,也是我推荐它的原因:)
    • Windows 上的 Python 可能会更好。我的意思是,假设该文件位于另一个文件夹中,并且您无法更改位置。在每个最终用户的脸上贴上“开始之前”的便条并不总是一种选择。我想仍然总是有 Python Win32 API。但这还是有点矫枉过正......
    • 我主要做服务器端,所以我不太关心这个。但是如何将 python 与程序一起打包,并制作一个启动 python 的简单批处理或 exe 文件。我觉得 Anki 有点像这样。 ankisrs.netAnki 是一个非常好的项目,带有一个自动安装程序
    • 好吧,py2exe 允许您嵌入清单。但是 py2exe 也可以给出恼人的 DLL 错误等。这就是发生在我身上的事情。用程序打包整个 Python 语言是不切实际的。而且,将 Python 嵌入到具有管理员权限的 C++ 程序中不起作用(我试过)。啊。
    猜你喜欢
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 1970-01-01
    • 2021-04-30
    • 2017-03-01
    • 2017-04-17
    • 2017-10-02
    相关资源
    最近更新 更多