防止 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 中查找模块 的相关文章

  • 没有名为 crypto.cipher 的模块

    我现在正在尝试加密一段时间 我最近得到了这个基于 python 的密码器 名为PythonCrypter https github com jbertman PythonCrypter 我对 Python 相当陌生 当我尝试通过终端打开 C
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 如何使用 Ansible playbook 中的 service_facts 模块检查服务是否存在且未安装在服务器中?

    我用过service facts检查服务是否正在运行并启用 在某些服务器中 未安装特定的软件包 现在 我如何知道这个特定的软件包没有安装在该特定的服务器上service facts module 在 Ansible 剧本中 它显示以下错误
  • 如何替换 pandas 数据框列中的重音符号

    我有一个数据框dataSwiss其中包含瑞士城市的信息 我想用普通字母替换带有重音符号的字母 这就是我正在做的 dataSwiss Municipality dataSwiss Municipality str encode utf 8 d
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • 无法在 Python 3 中导入 cProfile

    我试图将 cProfile 模块导入 Python 3 3 0 但出现以下错误 Traceback most recent call last File
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • 如何仅删除 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