CX_Freeze - 构建具有管理员权限的 .msi

2024-02-03

我正在尝试从我的 python/tkinter 代码创建一个可由其他用户安装的可执行文件。我已经能够使用 cx_Freeze 成功执行此操作,但是,.exe 无法写入工作或指定目录中的文件。 研究这个问题后,我发现这可能是因为.exe没有适当的读/写权限。 果然,当我尝试以管理员权限运行.exe时,我能够执行相关功能。由于这有效,我想知道是否有一种方法可以在 setup.py 文件中指定用户权限的同时构建 cx_Freeze .msi 。我无法找到任何有关此的文档,因此我希望您能对此提供帮助。任何帮助是极大的赞赏!


刚刚在寻找同一问题的解决方案时遇到了这个问题,所以我想分享一下我是如何解决它的。简短版本 -C:\Program Files不旨在成为具有任何程序权限的文件夹。

Windows 中的程序应使用 AppData 文件夹来写入本地数据,理论上不应有任何改变C:\Program Files从安装的那一刻起。 Windows 有环境变量来告诉您应用程序数据应该保存在哪里。对我来说运行这个:

app_data_folder = os.environ['ALLUSERSPROFILE']

为我提供所有用户的共享数据文件夹(在我的例子中C:\ProgramData)。然后,我的程序可以在其中创建一个文件夹,并以完全权限对其中的文件执行任何我想要的操作。

如果所有用户的共享数据文件夹不是您想要的,您应该使用其中之一来获取运行该程序的特定用户的 AppData 文件夹:

os.environ['APPDATA']  # in my case: 'C:\\Users\\myuser\\AppData\\Roaming'

OR

os.environ['LOCALAPPDATA'] # in my case: 'C:\\Users\\myuser\\AppData\\Local'

并重复上面所说的(在其中创建您自己的文件夹,继续根据需要保存和读取文件)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CX_Freeze - 构建具有管理员权限的 .msi 的相关文章

  • 围绕 readline 构建的 python 批处理的触发器选项卡完成

    背景 我有一个 python 程序 它导入并使用 readline 模块来构建自制的命令行界面 我有第二个 python 程序 围绕 Bottle 一个 Web 微框架构建 充当该 CLI 的前端 第二个 python 程序向第一个程序打开
  • 从数据框中按索引删除行

    我有一个数组wrong indexes train其中包含我想从数据框中删除的索引列表 0 63 151 469 1008 要删除这些索引 我正在尝试这样做 df train drop wrong indexes train 但是 代码失败
  • 我怎样才能更多地了解Python的内部原理? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我使用Python编程已经有半年多了 我对Python内部更感兴趣 而不是使用Python开发应用程序
  • 如何迭代按值排序的 Python 字典?

    我有一本字典 比如 a 6 b 1 c 2 我想迭代一下by value 不是通过键 换句话说 b 1 c 2 a 6 最直接的方法是什么 sorted dictionary items key lambda x x 1 对于那些讨厌 la
  • Python逻辑运算符优先级[重复]

    这个问题在这里已经有答案了 哪个运算符优先4 gt 5 or 3 lt 4 and 9 gt 8 这会被评估为真还是假 我知道该声明3 gt 4 or 2 lt 3 and 9 gt 10 显然应该评估为 false 但我不太确定 pyth
  • 如何使用 Plotly 中的直方图将所有离群值分入一个分箱?

    所以问题是 我可以在 Plotly 中绘制直方图 其中所有大于某个阈值的值都将被分组到一个箱中吗 所需的输出 但使用标准情节Histogram类我只能得到这个输出 import pandas as pd from plotly import
  • 使用 Python pandas 计算调整后的成本基础(股票买入/卖出的投资组合分析)

    我正在尝试对我的交易进行投资组合分析 并尝试计算调整后的成本基础价格 我几乎尝试了一切 但似乎没有任何效果 我能够计算调整后的数量 但无法获得调整后的购买价格有人可以帮忙吗 这是示例交易日志原始数据 import pandas as pd
  • 在Python中调整图像大小

    我有一张尺寸为 288 352 的图像 我想将其大小调整为 160 240 我尝试了以下代码 im imread abc png img im resize 160 240 Image ANTIALIAS 但它给出了一个错误TypeErro
  • python suds SOAP 请求中的名称空间前缀错误

    我使用 python suds 来实现客户端 并且在发送的 SOAP 标头中得到了错误的命名空间前缀 用于定义由element ref 在 wsdl 中 wsdl 正在引用数据类型 xsd 文件 请参见下文 问题出在函数上GetRecord
  • Numpy 过滤器平滑零区域

    我有一个 0 及更大整数的 2D numpy 数组 其中值代表区域标签 例如 array 9 9 9 0 0 0 0 1 1 1 9 9 9 9 0 7 1 1 1 1 9 9 9 9 0 2 2 1 1 1 9 9 9 8 0 2 2 1
  • 如何设置 Celery 来调用自定义工作器初始化?

    我对 Celery 很陌生 我一直在尝试设置一个具有 2 个独立队列的项目 一个用于计算 另一个用于执行 到目前为止 一切都很好 我的问题是执行队列中的工作人员需要实例化一个具有唯一 object id 的类 每个工作人员一个 id 我想知
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • 按元组分隔符拆分列表

    我有清单 print L I WW am XX newbie YY ZZ You WW are XX cool YY ZZ 我想用分隔符将列表拆分为子列表 ZZ print new L I WW am XX newbie YY ZZ You
  • 无法在 osx-arm64 上安装 Python 3.7

    我正在尝试使用 Conda 创建一个带有 Python 3 7 的新环境 例如 conda create n qnn python 3 7 我收到以下错误 Collecting package metadata current repoda
  • python Soap zeep模块获取结果

    我从 SOAP API 得到如下结果 client zeep Client wsdl self wsdl transport transport auth header lb E authenticate self login res cl
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • 迭代 my_dict.keys() 并修改字典中的值是否会使迭代器失效?

    我的例子是这样的 for my key in my dict keys my dict my key mutate 上述代码的行为是否已定义 假设my dict是一本字典并且mutate是一个改变其对象的方法 我担心的是 改变字典中的值可能
  • 具有自定义值的 Django 管理外键下拉列表

    我有 3 个 Django 模型 class Test models Model pass class Page models Model test models ForeignKey Test class Question model M
  • 检查字典键是否有空值

    我有以下字典 dict1 city name yass region zipcode phone address tehsil planet mars 我正在尝试创建一个基于 dict1 的新字典 但是 它不会包含带有空字符串的键 它不会包
  • 从 Twitter API 2.0 获取 user.fields 时出现问题

    我想从 Twitter API 2 0 端点加载推文 并尝试获取标准字段 作者 文本 和一些扩展字段 尤其是 用户 字段 端点和参数的定义工作没有错误 在生成的 json 中 我只找到标准字段 但没有找到所需的 user fields 用户

随机推荐

  • Android自定义视图组委托addView

    我想实现自定义ViewGroup就我而言 源自FrameLayout但我希望从 xml 添加的所有子视图不直接添加到此视图中 而是添加到FrameLayout包含在这个习俗中ViewGroup 让我举个例子来说明这一点
  • 缺少必需的模块 Firebase - Jenkins 构建错误

    我已经配置了 jenkins 来构建我的 ios swift 应用程序 我用过 xcode 版本 8 1 和 swift 版本 3 我是 Jenkins 的新手 并继续集成过程 根据我的控制台输出 我认为构建成功 因为控制台输出像这样打印
  • java.lang.UnsupportedOperationException:AdapterView 中不支持 addView(View, LayoutParams)

    我正在使用网上找到的 Expandable ListView 示例 活动 public class ExpandableListViewActivity extends ExpandableListActivity strings for
  • utf8mb4_unicode_ci 与 utf8mb4_bin

    首先让我们看看我是否做对了 字符集是一组符号和编码 排序规则是用于比较字符集中字符的一组规则 我应该使用 utf8mb4 因为 mysql utf8 是一种欺诈 最多 3 字节 而不是 PHP 中真正的最多 4 字节真正的 utf8 字符集
  • 打字稿和传播运算符?

    function foo x number y number z number console log x y z var args number 0 1 2 foo args 为什么我在 Typescript Playground 中收到
  • 多个 Activemq 远程代理的 Spring 配置

    如何在spring上下文中配置多个远程activemq代理 不同的IP地址 以下是 1 个远程代理的配置 我正在使用camel来创建路由 用于在多个远程代理中的不同队列中生成和使用消息 根据以下路由 系统如何知道每个队列属于哪个远程代理 项
  • 没有为命名空间 / 和操作名称 hello 映射的操作

    package com tutorialspoint struts2 public class HelloWorldAction private String name public String execute throws Except
  • 如何在asp.net core 1.0中获取当前的url

    在以前版本的 ASP NET 中 我们可以使用 Request Url AbsoluteUri 但似乎已经改变了 我们如何在 ASP NET Core 1 0 中做到这一点 您必须分别获取主机和路径 Context Request Host
  • 画一棵二叉树

    我正在寻找一个js库 它允许用户绘制二叉树 添加 删除叶子 添加 删除父节点等 我发现了很多库 但其中大多数仅用于数据可视化 例如 d3 而不是从浏览器中绘制 这真的存在吗 Thanks 看看现有的绘制图表的东西 树就是图 纯 JavaSc
  • 使用 jQuery 将具有相对路径的外部 HTML 页面加载到 DIV 中

    我对 jQuery 比较陌生 如果这个问题太简单 请原谅 但我已经搜索了许多线程几个小时 但找不到明确的解决方案 我有以下文件夹结构 index html html pages page1 html html pages images ht
  • 在 Postgres 中使用 DELETE 的返回值进行 UPDATE

    我需要使用从另一个表中删除的值来更新表 情况是类似于SO 上的评论投票记分员 我正在使用 python 来处理 postgres 但这应该没有什么区别 query UPDATE comment SET score score DELETE
  • persistence.xml 中 jpa 的 C3p0 连接池不起作用?

    在尝试按照我能找到的所有示例配置 c3p0 后 我仍然遇到 JDBC 超时问题 我正在使用 JPA Hibernate Tomcat MySQL AWS RDS 这是 persistence xml 的片段
  • 需要 Django 表单集

    如何使 django formset 中的所有表单都成为必需的 我试图验证所有字段的存在cleaned data重写 formset 的 clean 方法 但它只是默默地失败 没有显示任何错误 Thanks 源代码 class BaseSc
  • 检查我的系统中是否安装了 Python 软件包?

    如何检查我的系统中是否安装了某些软件包 我的系统是Linux 但如果它能在其他操作系统上运行就更好了 我的意思是操作系统特定的软件包 例如可能是 rpm 或 deb 有没有 python 模块或脚本可以做到这一点 要查明您是否安装了 deb
  • 如何在不单击按钮的情况下将两个值相乘 - javascript

    这是我的小提琴 http jsfiddle net YFgkB 6 http jsfiddle net YFgkB 6
  • 有没有办法从 Qt 中的另一个信号触发一个信号?

    我已经有了一个应用程序 现在正在对其进行调整 在这方面 我引入了一个新信号 当发出另一个信号时必须发出该信号 这在 Qt 中可能吗 编写一个插槽只是为了发出这个信号感觉如此原始和蹩脚 进一步详细说明 我必须将按钮 signalClicked
  • 如何检查哪些提交尚未推送到原点?

    我已经向我的本地分支 我们就说 master 做出了提交 并让 git pull 下来了其他人所做的更改 当我运行 git status 时 我看到类似以下内容 Your branch is ahead of origin master b
  • Autoconf:如何将安装路径获取到config.h中

    我的程序需要在运行时加载一些文件 这些文件将安装到指定的任何文件夹中 configure datadir somewhere 由于我的程序需要在运行时知道该文件夹的位置 因此我需要在某处 define 一个符号 以便 C 代码可以以字符串形
  • 将 Lambda 传递给 pthread_create?

    我在整个网络上搜索答案 但没有找到任何解决方案 你能帮忙吗 我的问题是我正在尝试将 Lambda 发送到另一个函数并使用Pthread跨多个线程运行 lambda 的库 接下来是代码 1 include
  • CX_Freeze - 构建具有管理员权限的 .msi

    我正在尝试从我的 python tkinter 代码创建一个可由其他用户安装的可执行文件 我已经能够使用 cx Freeze 成功执行此操作 但是 exe 无法写入工作或指定目录中的文件 研究这个问题后 我发现这可能是因为 exe没有适当的