从选定位置导入 Python 模块

2024-05-06

假设我有三个脚本。 Main.py(包含所有导入)、1.py(随机脚本)、2.py(随机脚本)。

pyinstaller -F --onedir Main.py (80mb)
pyinstaller -F --onedir 1.py (80mb)
pyinstaller -F --onedir 2.py (80mb)

这会创建 3 个文件夹,然后我将 1.exe 和 2.exe 以及所有依赖项复制到主文件夹,并且运行良好。

存在两个问题:

问题是尺寸。一个文件将其减少到 30mb,一个文件夹将其保持在 80mb

更重要的是,exe 无法离开该文件夹。我不得不求助于使用 Python 中的快捷方式。

我正在关注this https://github.com/pyinstaller/pyinstaller/pull/2221,这应该是一个解决方法。

我的问题是,如何使用 pyinstaller 从选定位置读取导入,以便移动可执行文件?

逻辑: 使用以下命令编译 Main.pypyinstaller -F –onefile Main.py (15mb).

创建文件夹于C:\13\所以exe看起来像C:\13\Main.exe

链接所有 exe 的位置C:\13? with --runtime-tmpdir PATH

我正在努力寻找有关从 exe 内部导入的文档,甚至"one dir"文件夹。有很多关于从一开始就获取导入的内容,但没有太多关于从选定位置获取导入的内容,因此我可以在任何地方运行 exe。更重要的是,如果不反编译,甚至很难在 pyinstaller 中找到模块,这加剧了这种混乱。

也许...

pyinstaller -F --runtime-tmpdir C:\13 --onefile 2.py

pyinstaller -F --runtime-tmpdir C:\13 --onedir 3.py

虽然对我来说没有创建目录。如何从选定位置获取进口商品。

另一种可能solution https://stackoverflow.com/questions/7674790/bundling-data-files-with-pyinstaller-onefile:

  if getattr(sys, 'frozen', False): 
      os.path.join(sys._MEIPASS, "C:\aa")

虽然正如你所看到的image https://i.stack.imgur.com/HpTCF.jpg,可以说我们想要 pandas,有几个文件可供选择......


当 PyInstaller 切换到 3.0 版本时,我也遇到了同样的问题Nuitka http://nuitka.net/pages/overview.html为我解决了。

你可以捆绑你的Main.py into a .pydlib 文件,然后创建可执行文件1.py and 2.py这将从这个“dll”导入所有需要的包。因此,您可以将 lib 文件放入特定位置并设置PYTHONPATH在启动可执行文件之前(例如在批处理文件中或直接在 shell 配置中)。

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

从选定位置导入 Python 模块 的相关文章

  • 为什么最新的 Python 3.8.x 版本不提供 Windows 安装程序?

    我需要在Windows计算机上安装Python 3 8并希望使用最新的小版本3 8 12 https www python org downloads release python 3812 官方发布网页提供了源代码的 tarball 文件
  • Selenium 打开未登录 Chrome 帐户的 chrome

    我最近一直在使用 Selenium WebDriver 我还专门使用 chromedriver 每当我打开一个新的 chrome 窗口 driver get url 时 Chrome 都会以完全默认的状态启动 而不是我刚刚从我的扩展坞打开一
  • 如何在模型 Django 中创建必需:布尔字段

    我有一个模型 其中有一个名为的字段is student and is teacher Student and Teacher forms is teacher models BooleanField teacher status defau
  • tkinter 上的“NoneType”对象没有属性“get”错误[重复]

    这个问题在这里已经有答案了 我最近开始使用 python 3 6 进行编码tkinter并尝试创建我自己的项目repl it 该项目是一个简单的交互式待办事项列表 但是我陷入困境并且无法使该功能正常工作 该函数只是简单地获取条目并将其添加到
  • python 打开相对文件夹中所有以.txt结尾的文件

    我需要打开并解析文件夹中的所有文件 但我必须使用相对路径 类似于 input files 我知道在 JavaScript 中你可以使用 path 库来解决这个问题 我怎样才能在Python中做到这一点 这样您就可以获得路径中的文件列表作为列
  • 为什么 np.linalg.norm(..., axis=1) 比写出向量范数公式慢?

    标准化矩阵的行X对于单位长度 我通常使用 X np linalg norm X axis 1 keepdims True 在尝试优化算法的此操作时 我非常惊讶地发现在我的机器上写出标准化的速度大约快了 40 X np sqrt X 0 2
  • Python textwrap.wrap 导致 \n 问题

    所以我只是重新格式化了一堆代码以合并textwrap wrap 却发现我所有的 n都消失了 这是一个例子 from textwrap import wrap def wrapAndPrint msg width 25 wrap msg to
  • Web 应用程序框架:C++ 与 Python

    作为一名程序员 我熟悉 Python 和 C 我正在考虑编写自己的简单 Web 应用程序 并且想知道哪种语言更适合服务器端 Web 开发 我正在寻找一些东西 它必须是直观的 我认识到 Wt 存在并且它遵循 Qt 的模型 我讨厌 Qt 的一件
  • 为什么Python 3中实例方法可以作为类方法调用?

    考虑下面的类 class Foo object def bar self print self 在Python 2中 2 7 13 调用bar 作为类方法引发异常 gt gt gt Foo bar hello Traceback most
  • 在Python中从整个图像中检测表格部分

    我有一张尺寸为 3500x5000 的图像 现在我只想检测整个图像中的表格部分 如果不能直接进行 OCR 处理 则对其进行裁剪和旋转 经过所有搜索后 我想到了使用裁剪图像中的每个单元格的想法https medium com coinmonk
  • 有什么理由不在Python中混合使用多处理和线程模块

    我正在考虑使用Python来实现一个需要大量多线程的程序 另一个要求是它将在桌面上运行 因此拥有许多进程将使应用程序显得混乱且难以杀死 在任务管理器中 因此 我正在考虑使用线程和多处理模块来减少进程数量 据我了解 GIL 仅适用于单个进程
  • Django - 从时间戳获取不同的日期

    我正在尝试按日期过滤用户 但直到我可以找到数据库中用户的第一个和最后一个日期为止 虽然我可以让我的脚本稍后过滤掉重复项 但我想从一开始就使用 Django 来完成此操作distinct因为它显着减少 我试过 User objects val
  • pygame.image.load 不工作

    我正在尝试为游戏创建世界地图 但是当我尝试将世界地图加载到屏幕上时 命令行告诉我无法执行此操作 这是代码 import sys import pygame from pygame locals import pygame init Surf
  • Python 柯里化任意数量的变量

    我正在尝试使用柯里化在 Python 中进行简单的函数添加 我找到了这个咖喱装饰器here https gist github com JulienPalard 021f1c7332507d6a494b def curry func def
  • 无法从源 pylance 解析导入烧瓶

    我正在学习 Python 课程的一部分是使用 Flask 设置网络服务器 我按照 Flask 安装文档执行了步骤 由于某种原因 flask 模块带有下划线 如下所示 当我将鼠标悬停时 我会得到如下附加信息 无法从源 pylance 解析导入
  • 使用 unrar 库 - 将文件提取到文件流缓冲区中

    我需要的是能够将 rar 文件中的文件提取到流中 我正在创建一个测试用例来了解如何使用解压源文件 http www rarlab com rar unrarsrc 3 9 9 tar gz 我已经搜索和修补了一段时间 但我不知道如何使用该库
  • Python,质数检查器[重复]

    这个问题在这里已经有答案了 你好 我正在创建一个函数来检查一个数字是否是素数 但它告诉我 9 是一个素数 def eprimo num if num lt 2 return False if num 2 return True else f
  • 添加条件计数器:基于其他列的值的计数器列

    我有一张这样的桌子 id id2 val a red apple a red orange b blue fish c violet beef a yellow banana a black pork 我想根据 id 和 id2 的值创建一
  • PageSpeed Insights 没有看到 Gzip 压缩

    我正在努力加快我的网站速度 谷歌洞察 https developers google com speed pagespeed insights https developers google com speed pagespeed insi
  • 我收到错误:rest_framework.request.WrappedAttributeError:'CSRFCheck'对象没有属性'process_request'

    urls py from django conf urls import url from django contrib import admin from django conf import settings from django c

随机推荐