防止 Python 嵌入在我的默认路径 C:\Python38 中查找模块

2024-01-17

我正在使用 Cython--embed模式来生成.exe。我正在评估分发嵌入 Cython 编译的代码并使其在任何机器上运行所需的最少文件集 https://stackoverflow.com/questions/62390978/minimal-set-of-files-required-to-distribute-an-embed-cython-compiled-code-and-ma/62392087#62392087。为此,我仅从 Python Windows 复制最少数量的文件嵌入式封装 https://www.python.org/downloads/windows/.

为了检查这一点,我需要确保我正在测试的当前进程doesn't事实上,使用我的系统默认安装的Python,即C:\Python38。

为此,我打开一个新的cmd.exe and do set PATH=这会暂时删除 PATH 中的所有内容。然后我可以测试任何自编译的app.exe并确保它不会重复使用C:\Python38的文件在幕后。

除了模块之外,它可以工作。即使做了之后set PATH=,我的代码app.py

import json
print(json.dumps({"a":"b"}))

当 Cython---embed-编译成.exe可以工作,但它仍然使用C:\Python38\Lib\json\__init__.py!我确信这一点,因为如果我暂时删除这个文件,我的 .exe 现在会失败,因为它找不到json module.

如何彻底删除任何链接C:\Python38调试Python程序时哪些不应该使用这些文件?

为什么不是set PATH=足够的?它为模块使用了哪些其他环境变量?我检查了所有系统变量,我想我没有找到任何与 Python 相关的变量。


Python 有一个相当复杂的启发式方法来查找它的“安装”(例如,参见这个SO问题 https://stackoverflow.com/q/56857449/5769463或这个描述 https://github.com/python/cpython/blob/3.7/Modules/getpath.c#L14),所以它可能找不到您提供的安装,而是找到“默认”安装。

可能最简单的方法是设置环境变量PYTHONPATH指向启动嵌入式解释器之前所需的安装。

通过检查sys.path可以检查是否找到正确的安装。

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

防止 Python 嵌入在我的默认路径 C:\Python38 中查找模块 的相关文章

  • 为什么需要在 Python 方法中显式使用“self”参数? [复制]

    这个问题在这里已经有答案了 当在 Python 中的类上定义方法时 它看起来像这样 class MyClass object def init self x y self x x self y y 但在其他一些语言中 例如 C 您可以使用
  • 如果 Excel 文件是由程序创建的,Pandas read_excel 对于具有简单公式的单元格返回 nan [重复]

    这个问题在这里已经有答案了 I use pd read excel读取由以下命令创建的 excel 文件openpyxl并从一个网址下载 解析后的数据框将给出nan如果单元格值是公式 which formula is simply 100
  • PHP-docker容器中的环境变量

    我想在我的 docker 容器中显示一个环境变量 PHP 脚本如下所示 我使用 OpenShift 来启动容器 PHP 容器显示 env is 现在我更改容器的 dc 配置 oc env dc envar USER Pieter deplo
  • Python 转换矩阵

    我有一个如下所示的列表 2 1 3 1 2 3 1 2 2 2 我想要的是一个转换矩阵 它向我显示如下序列 1 后跟 1 的频率是多少 1 后面跟着 2 的频率是多少 1 后跟 3 的频率是多少 2 后跟 1 的频率是多少 2 后跟 2 的
  • 如何使用一个模型中间层的输出作为另一个模型的输入?

    我训练一个模型A并尝试使用中间层的输出name layer x 作为模型的附加输入B 我尝试像 Keras 文档一样使用中间层的输出https keras io getting started faq how can i obtain th
  • 键入的完整命令行

    我想获得输入时的完整命令行 This join sys argv 在这里不起作用 删除双引号 另外 我不想重新加入已解析和拆分的内容 有任何想法吗 你太迟了 当键入的命令到达 Python 时 您的 shell 已经发挥了它的魔力 例如 引
  • 为什么在访问 Python 对象属性时使用 getattr() 而不是 __dict__ ?

    在具有一定程度的 Python 对象自省的源代码示例和 SO 答案中 常见的模式是 getattr some object attribute name string 是否有理由优先选择这种模式 some object dict attri
  • App Engine NDB:如何访问属性的 verbose_name

    假设我有这个代码 class A ndb Model prop ndb StringProperty verbose name Something m A m prop a string value 当然 现在如果我打印 m prop 它会
  • 如何从hdfs读取文件[重复]

    这个问题在这里已经有答案了 我在 project1目录下的hadoop文件系统中有一个文本文件名mr txt 我需要编写 python 代码来读取文本文件的第一行 而不将 mr txt 文件下载到本地 但我无法从 hdfs 打开 mr tx
  • Django 多对多关系(类别)

    我的目标是向我的 Post 模型添加类别 我希望以后能够按不同类别 有时是多个类别 查询所有帖子 模型 py class Category models Model categories 1 red 2 blue 3 black title
  • Py2exe - Pmw WindowsError:[错误 3]

    我正在尝试使用 Py2exe 构建独立的可执行文件 我已经导入了 Pmw 类 当我运行独立可执行文件时 出现以下错误 Traceback most recent call last File py line 9 in
  • 在请求中设置端口

    我正在尝试利用cgminer使用 Python 的 API 我对利用requests图书馆 我了解如何做基本的事情requests but cgminer想要更具体一点 我想缩小 import socket import json sock
  • 数据框中 .map(str) 和 .astype(str) 有什么区别

    我有一个数据框 其列名为 col1 和 col2 的整数类型条目 我想将 col1 和 col2 的条目以及其间的 点 连接起来 我搜索并发现添加两个列条目 df col df col1 map str df col2 map str 并添
  • 如何用正则表达式替换多个匹配/组?

    通常我们会编写以下内容来替换一场比赛 namesRegex re compile r is life re I replaced namesRegex sub r butter There is no life in the void pr
  • Seaborn 中没有线性拟合的散点图

    我想知道是否有办法关闭seaborn中的线性拟合lmplot或者是否有一个等效函数可以生成散点图 当然 我也可以使用 matplotlib 但是 我发现 seaborn 中的语法和美学非常吸引人 例如 我想绘制以下情节 import sea
  • 如何创建用于霍夫曼编码和解码的树?

    对于我的作业 我将对霍夫曼树进行编码和解码 我在创建树时遇到问题 并且陷入困境 不要介意打印语句 它们只是让我测试并查看函数运行时的输出是什么 对于第一个 for 循环 我从主块中用于测试的文本文件中获取了所有值和索引 在第二个 for 循
  • Python 读取未格式化的直接访问 Fortran 90 给出不正确的输出

    这是数据的写入方式 它是一个二维浮点矩阵 我不确定大小 open unit 51 file rmsd nn output form unformatted access direct status replace recl Npoints
  • 使用 pandas 单元格中列表的长度选择行[重复]

    这个问题在这里已经有答案了 我有一张表 df a b c 1 x y x 2 x z c d 3 x t e f g 只是想知道如何使用 c 列的长度选择行 such as df loc len df c gt 1 我知道这是不对的 正确的
  • MoviePY 无法在 Windows 上检测 ImageMagick 二进制文件

    我刚买了一台新笔记本电脑 想要设置MoviePY在那新的Windows 64x Python3 7 0 机器 我对所有内容都进行了三次检查 但是当涉及到我的代码的文本部分时 它向我抛出了这个错误 OSError MoviePy Error
  • 如何同时接受int和float类型的输入?

    我正在制作一个货币转换器 如何让 python 同时接受整数和浮点数 我就是这样做的 def aud brl amount From to ER 0 42108 if amount int if From strip aud and to

随机推荐

  • 如何仅删除 Pandas 多索引数据框中的索引名称而不删除内容

    我有以下制表符分隔文件 mydata txt Set Coolthing Route Organ Up Down set4 foo ID LN 81 60 set4 bar ID LN 542 92 set4 foo ID LV 73 73
  • 在VS2010中找不到DataContractJsonSerializer

    我正在开发一个演示 Silverlight 应用程序 我想做一些简单的 JSON 我找到了System Runtime Serialization Json DataContractJsonSerializer http msdn micr
  • Objective C 检查文本字段是否为空

    这是代码 IBAction charlieInputText id sender getting value from text field when entered charlieInputSelf sender stringValue
  • 随机生成具有偏爱低值分布的整数

    我有一个按某些质量函数排序的列表 我想从中获取元素 更喜欢列表开头的好元素 目前 我生成随机索引的函数基本上如下所示 def pick p 0 2 for i in itertools count if random random lt p
  • Ubuntu Apache2 本地虚拟主机 url 未找到

    我正在设置我的笔记本电脑 使用 Ubuntu 16 10 上的 LAMP 堆栈进行多个站点的单用户开发 并为不同站点提供虚拟主机和基于名称的虚拟主机 我尝试了各种配置设置组合 但无法从浏览器加载站点 我收到 在此服务器上找不到请求的 URL
  • Groovy 压缩列表或按级别展平

    我正在尝试压缩两个列表 我找到了一个解决方案 使用transpose 来自此链接 Groovy 中是否有 Scala zip 函数的类似物 https stackoverflow com questions 13879489 is ther
  • 如何对数组列表<>求和

    我有一个 List myList 其中我知道所有 int 数组的长度相同 为了便于论证 我们假设我有 500 个数组 每个数组有 2048 个元素长 我想对所有 500 个数组求和 得到一个长度为 2048 个元素的数组 其中每个元素是所有
  • 仅当编辑器处于焦点状态时才显示 TextAngular 工具栏(对于具有 1 个工具栏的多个编辑器)

    我有多个编辑器和一个工具栏 最初我只有一个编辑器 然后通过单击工具栏中的按钮添加第二个和第三个编辑器 工具栏位于第一个编辑器的顶部 随后添加的编辑器堆叠在另一个编辑器的下面 我遇到的问题是 当任何编辑器处于焦点状态时 如何显示工具栏 如何将
  • 动态生成灵活数量的嵌套 for 循环[重复]

    这个问题在这里已经有答案了 是否可以根据输入的长度添加 减少函数中嵌套 for 循环的数量 例如 基于长度为 3 的某个输入 我可能需要使用 1 个嵌套 for 循环 for 循环位于另一个 for 循环内 与此类似 for i in ra
  • ReSharper 的静态分析器似乎已损坏。我如何解决它?

    我对 ReSharper 给出的建议明显错误感到有疑问 例如 在以下代码示例中 ReSharper 表示response dates and ex当变量在以下几行中明确使用时 永远不会使用它们 Dim response As New Wcf
  • 仅在 Safari 上单击/悬停/聚焦时出现意外行为 - 圆形图片变为方形?

    我有奇怪的行为 圆形图片在桌面和移动设备上变成方形 这似乎只发生在 safari 上 并且只有当我添加 CSS 过渡时才会发生 这是网站 https shmoss github io Gibbs Lab people html https
  • C# 方法声明中的 new

    public new int AdjustedBaseValue 这里的新是什么意思或做什么 这意味着您正在隐藏 int 值 它是在基类中声明的 并且您在派生类中重新声明它 从而有效地隐藏了基类版本 查看文档here https learn
  • CSS 外部样式表不起作用,但完全相同的 CSS 在内部样式表上工作

    在制作个人网站时 我遇到了添加 CSS 样式表的问题 该样式表是本地样式表 在同一文件夹中具有 htm 文件 名为 Rodrigo css Here is the HTML Link tag with the CSS in the hrc
  • 绕过截断的“ps”

    我正在尝试编写一个脚本 该脚本将根据关键字查找特定进程 提取 PID 然后使用找到的 PID 杀死它 我在 Solaris 中遇到的问题是 由于 ps 结果被截断 基于关键字的搜索将无法工作 因为关键字是被截断的部分 过去 80 个字符 的
  • 如何检查函数是否已从控制台调用?

    我试图跟踪从控制台调用某些函数的次数 我的计划是在每个函数中添加一个简单的函数 例如 trackFunction 可以检查它们是从控制台调用还是作为底层函数调用 尽管这个问题听起来很简单 但由于我在函数编程方面的知识有限 我找不到解决这个问
  • git filter repo - 未找到 Python - 但已安装

    所以我第一次尝试使用 git filter repo 我已经安装了Python 3 9 我尝试运行 git filter repo strip blobs bigger than 100M 每次失败时 git 重击 git filter r
  • psexec 支持输入重定向吗?

    我试图通过 psexec 控制远程 Python 脚本 它从 stdin 读取命令 但我需要重定向 psexec 的输入 因为 psexec 本身将从另一个程序启动 但是 我没有运气让 psexec 接受重定向的输入 它应该起作用吗 我想做
  • lxml:将命名空间添加到输入文件

    我正在解析由外部生成的 xml 文件program http celldesigner org 然后 我想使用我自己的命名空间向该文件添加自定义注释 我的输入如下所示
  • iOS - Xcode 中的文件所有者和第一响应者是什么?

    iOS Xcode 中的文件所有者和第一响应者是什么 文件所有者是一个实例化的 runtime加载笔尖时拥有笔尖内容及其出口 操作的对象 它可以是您喜欢的任何类的实例 查看工具选项板的标识选项卡 文件所有者是应用程序代码和 nib 文件内容
  • 防止 Python 嵌入在我的默认路径 C:\Python38 中查找模块

    我正在使用 Cython embed模式来生成 exe 我正在评估分发嵌入 Cython 编译的代码并使其在任何机器上运行所需的最少文件集 https stackoverflow com questions 62390978 minimal