【问题标题】:cx-freeze PermissionError: [Errno 13] Permission deniedcx-freeze PermissionError: [Errno 13] 权限被拒绝
【发布时间】:2020-04-08 13:09:39
【问题描述】:

我正在尝试使用 cx_Freeze 作为将 .py 转换为 .exe (auto-py-to-exe) 的常用应用程序的替代方案。当我在 cmd 中运行它时,我得到:

C:\WINDOWS\system32>cxfreeze-quickstart
Project name: FE
Version [1.0]: 1.0
Description: File Edit and more!!!
Python file to make executable from: File Create.py
Executable file name [File Create]: FileCreateExe
(C)onsole application, (G)UI application, or (S)ervice [C]: C
Save setup script to [setup.py]: C:\Users\tom\Documents\python\_Thiswill createfiles_
Overwrite C:\Users\tom\Documents\python\_Thiswillcreatefiles_ [n]? yes
Traceback (most recent call last):
  File "c:\users\tom\appdata\local\programs\python\python38-32\lib\runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\tom\appdata\local\programs\python\python38-32\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\tom\AppData\Local\Programs\Python\Python38-32\scripts\cxfreeze-quickstart.exe\__main__.py", line 7, in <module>
  File "c:\users\tom\appdata\local\programs\python\python38-32\lib\site-packages\cx_Freeze\setupwriter.py", line 101, in main
    writer.Write()
  File "c:\users\tom\appdata\local\programs\python\python38-32\lib\site-packages\cx_Freeze\setupwriter.py", line 64, in Write
    output = open(self.setupFileName, "w")
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\tom\\Documents\\python\\_This will create files_'

如您所见,我以管理员身份运行命令提示符,因为在正常运行时遇到了同样的错误。我能做些什么来解决这个错误? PermissionError: [Errno 13] Permission denied: 'C:\\Users\\tom\\Documents\\python\\_This will create files_'。我找不到任何其他解释如何解决此问题的网站。为什么会出现这个错误?请问我可以帮忙...????????????

【问题讨论】:

  • @PNX 你能提供文件名的正确例子吗?我的意思是,为什么要让 python 文件从 File Create.py 和可执行文件名 [File Create] 作为 File Create Executable 执行?另外,你可以有一个没有空格的文件夹来保存吗? C:\Users\tom\Documents\python\_This will create files_?
  • 我更新了@NagarajTantri 的问题。我希望这就是你的意思?

标签: python cmd exe cx-freeze pypi


【解决方案1】:

老兄,你正在从 system32 运行命令

使用此命令cd到另一个目录并重试

cd C:/Users/<your name>/Documents

如果这不起作用,请转到here

【讨论】:

  • System32 在以管理员身份运行 cmd(和进程)时。
  • @DiamondDemon Windows 上的目录分隔符是\,而不是Linux/Mac 上的/。请阅读有关Naming Files, Paths, and Namespaces 的Microsoft 文章,并且不要在Windows 上将/ 用于文件/文件夹字符串中作为目录分隔符,尽管Windows 通常会在将文件/文件夹字符串传递给文件系统之前全部替换它们。比较for %I in (C:\Windows\*.exe) do @echo %Ifor %I in (C:/Windows/*.exe) do @echo %I 的输出,看看输出的差异。
  • @DiamondDemon 有预定义的Windows environment variable USERPROFILE 与应该使用的用户配置文件目录的路径,而不是C:/Users/&lt;your name&gt;。文件/文件夹名称应始终包含在 " 中,即使包含例如字符 &amp; 也始终有效。此外,建议使用选项/D 使用CD 来更改目录,如有必要还更改驱动器。如果用户的文档外壳文件夹仍然是默认文件夹,那么cd /D "%UserProfile%\Documents" 会更好。
  • @DiamondDemon 命令在偶然通过 Windows 自动语法更正工作或因为 100% 正确编写而工作之间存在差异。在我的计算机上,由于打开命令提示符窗口后的当前目录默认情况下不在驱动器C: 上,并且我的用户配置文件目录不在C:\Users 中,因此您发布的命令将永远无法工作,如果您的命令不起作用用户帐户名称包含一个 & 符号,例如 Obelix GmbH &amp; Co KG。 SO 是一个面向程序员的网站,在该网站上发布的代码应该是按设计而非偶然的方式发布的。
【解决方案2】:

第 1 步:将 Python 添加到 Windows 路径
第 2 步:打开 Windows 命令提示符以管理员身份
第三步:安装 Pyinstaller 包

在 Windows 命令提示符中,键入以下命令来安装 pyinstaller 包(然后按 Enter):

pip install pyinstaller

第 4 步:保存您的 Python 脚本

然后我将 Python 脚本保存在以下文件夹中:

C:\Users\Ron\Desktop\MyPython

我将 Python 脚本命名为“hello”

第 5 步:使用 Pyinstaller 创建可执行文件

现在您将能够使用 pyinstaller 从 Python 脚本创建可执行文件。

只需转到命令提示符,然后键入:

cd 后跟 Python 脚本的存储位置

在我的例子中,我在命令提示符中输入了以下内容:

cd C:\Users\Ron\Desktop\MyPython

接下来,使用以下模板创建可执行文件:

pyinstaller --onefile pythonScriptName.py

由于在我们的示例中,pythonScriptName 是“hello”,那么创建可执行文件的命令是:

pyinstaller --onefile hello.py

完成后,最后一次按 Enter。

第 6 步:运行可执行文件

您的可执行文件现在应该在您指定的位置创建。

就我而言,我回到了最初存储“hello”脚本的位置

(C:\Users\Ron\Desktop\MyPython)。

在该位置创建的其他文件很少。要查找可执行文件,请打开 dist 文件夹:

现在我希望能解决这个问题..

【讨论】:

  • 对不起,我粘贴了不同的答案
  • 但是他/她需要以管理员身份打开命令提示符可能会解决问题
  • dude autopytoexe 使用 pyinstaller 我检查了源代码
【解决方案3】:

Read this doc. 在您的项目目录中创建一个setup.py 文件并将文档中的内容复制到其中。

根据需要修改它,然后在您的项目目录中运行python setup.py build

【讨论】:

    猜你喜欢
    • 2015-07-17
    • 2016-07-25
    • 2018-11-18
    • 2020-07-01
    • 2016-11-12
    • 2019-11-09
    • 2020-06-06
    • 2021-11-11
    • 2020-02-27
    相关资源
    最近更新 更多