py2exe无法从其他目录导入模块

2024-03-02

我将 python 源代码与 py2exe 捆绑在一起。目录结构如下:

some_Mod.py
some_dir/another_dir/some_Mod.py

在后者 some_dir/another_dir/some_Mod.py 中,我尝试导入其他 Python 模块

from ..some_Mod import *

使用导入不会导致 python 解释器出现问题,但如果我在捆绑包中运行相同的星座,则会出现异常:

 ImportError: No module named some_Mod

有人可以解释为什么吗?

备注:重命名模块实际上没有问题,但我只是想知道,为什么 py2exe 不能处理这个星座。


如果你有__init__.py如果每个子目录中都有文件,那么所有导入语句都应该正常工作。
假设这不是问题,这里有一个导入最佳实践的优秀指南:

http://blog.habnab.it/blog/2013/07/21/python-packages-and-you/ http://blog.habnab.it/blog/2013/07/21/python-packages-and-you/

总之,永远不要使用相对导入 - 始终使用绝对导入(请参阅上面的链接了解原因)。

其次(我不完全确定为什么),始终将 py2exe setup.py 脚本保存在主脚本所在的确切文件夹中。我尝试修改 py2exe 的“脚本”选项以允许我的脚本位于其他地方......但你的确切问题发生在我身上。因此,请尝试确保它位于主脚本所在的位置。

最后,你总是可以给 py2exe 一点帮助。我通常必须将根目录添加到系统路径中,以便导入语句有效。注意,我没有修改sys.path in any我的应用程序代码 - 只有我用来构建 exe 的 py2exe 脚本。

在我的 py2exe 设置脚本的顶部:

import sys
sys.path.append(PATH_WHERE_PACKAGES_ARE)
# add any packages that need explicit importing here located in root directory:
import package1 # apparently it wasn't found...
import package2 # apparently same thing

一般来说,我不导入包,在它们通常存在的地方添加项目根就足够了。

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

py2exe无法从其他目录导入模块 的相关文章

随机推荐

  • Facebook,允许应用程序仅管理一个页面

    我有以下问题 我有许多针对不同网站的 Facebook 页面 一些是我的 sime 属于客户 但我管理它们 现在 我自己的网站和客户网站都应该使用可以管理适当页面的应用程序 我看到的应用程序的唯一范围是manage pages 但是当我授予
  • 如何在 Java 中的多个 Web 应用程序中维护相同的会话 ID

    如何为 Jboss 服务器中的多个 Web 应用程序维护相同的会话 ID 看看这篇文章 有类似的问题 访问另一个 Web 应用程序的会话 https stackoverflow com questions 260823 access ses
  • 如何使用 MATLAB 绕非图像中心点的点旋转图像?

    使用 MATLAB 绕非图像中心点的点旋转图像的方法是什么 相同角度的两次旋转等于一次平移 因此 您可以围绕中心进行旋转 然后平移图像以将您自己的旋转中心放在原来的位置
  • ColdFusion cfscript 查询 LIKE 语句中是否存在通配符“%”?

    是否可以在 ColdFusion cfscript 查询中的 SQL LIKE 语句中使用通配符 一个不起作用的例子 local q new Query local q setDatasource variables dsn local q
  • Backbone.js PushState 路由 .htaccess 仅作为散列工作,但无其他用途

    例如 我有一个网站domain com 我有带有pushstate和后备功能的backbone js 当我转到domain com about时 它会加载index html页面并将pushstates到about 一切正常 但是 如果我想
  • 创建 Excel 插件 - 获取单元格值

    我正在使用 Visual Studio 2010 创建 Excel 插件 我能够使用此代码获取单元格地址 label1 Label Globals MyAddIn Application ActiveCell Address ToStrin
  • AJAX 调用错误 - 状态 400(错误请求)

    我正在尝试使用 BloomAPI 通过查询医生的名字和姓氏来检索医生的 NPI 号码 我正在使用 Jquery Ajax 发出 JSON 数据的获取请求 当我在终端中执行 CURL 时 我能够获取 JSON 数据 curl X GET 出于
  • 在自定义布局页面上选择图像文件并将文件复制到安装文件夹

    我的目标是让用户使用此安装程序 插入您的姓名 选择您的语言并设置自定义参数 这样就完成了 但我需要的是用户选择一个图像将其作为应用程序中的头像 这就是用户选择图像然后将文件复制到应用程序文件夹的原因 像这样的事情 这是我的代码 如果有人可以
  • Python - 雅虎财经下载所有标准普尔 500 指数股票

    我正在尝试从此处运行代码来下载所有 S P 500 股票 https pythonprogramming net sp500 company price data python programming for finance https p
  • IE10 不处理点击事件 |帮助使用 MSPointer

    请提前原谅我是一个愚蠢的菜鸟 不管怎样 我正在尝试让我的 html5 游戏在 IE10 上运行 但它没有检测到我的点击 所以我对此进行了一些研究 发现它并没有理解这意味着什么 document getElementById answer1
  • 我给 %f 的输入没有保存

    GradeOne 和 secondaryGrade 不保存我给出的数字 所以我不能得到平均值 因为 总是以 0 0 2 的除法结束 有人可以帮助我吗 include
  • 如何让 Eclipse 和 Maven 下载我需要的 JAR?

    我是 Maven 和 Eclipse 的新手 我们一直在项目中使用 Netbeans 并手动安装 jar 我以为Maven的目的是根据你的依赖关系下载所需的jar 在一个新项目中 我在我的项目下添加了以下内容dependencies我的 p
  • 如何从公共互联网访问 HTTP 端口 5001

    我有 Windows Server 2016 Data center x64 NET Core SDK 5 0 预览版 Microsoft SQL Server 2019 在服务器上 https localhost 5001 publish
  • 如何使用 NSXML 解析 Google 天气 API?

    我想使用 NSXML 解析 google 天气 API 所以请给我一些指导 This is My url http www google com ig api weather Ahemdabad 我已经采取了这样的步骤 NSURL url
  • 如何手动安装旧的 cygwin 软件包?

    我正在进行的一个项目需要旧版本的 SLAPD LDAP 服务器 并且必须在 Windows 上运行 因此我使用 cygwin 软件包 我在这里找到了我需要2 2 x的slapd版本的二进制包 http www mirrorservice o
  • 使用 igraph 绘制网络

    我想从相关矩阵创建一个网络并绘制它 我正在尝试为此使用 igraph 这是我的数据的一个子集 mydata Taxon CD1 CD2 Actinomycetaceae g Actinomyces 0 072998825 0 0313994
  • MKMapView 缩放到 viewDidLoad 上的用户位置?

    我试图在视图加载后将地图缩放到用户的当前位置 但出现错误 由于未捕获的异常 NSInvalidArgumentException 而终止应用程序 原因 无效区域 当视图加载时 有人可以帮忙吗 Cheers void viewDidLoad
  • Chrome 插件 - 上下文菜单插入文本

    我试图弄清楚如何在右键单击输入字段 可编辑 时插入预定义字符串 通常我会使用文档通过 id 获取元素 但是 由于我无法确定用户单击的元素 在任何网站上我该如何执行此操作 到目前为止我有我的清单文件 permissions contextMe
  • 如何检测 PHP JIT 是否启用

    检测 PHP 是否使用 JIT 编译并且从运行脚本启用 JIT 的最简单方法是什么 您可以通过调用直接查询opcache设置opcache get status https www php net manual en function op
  • py2exe无法从其他目录导入模块

    我将 python 源代码与 py2exe 捆绑在一起 目录结构如下 some Mod py some dir another dir some Mod py 在后者 some dir another dir some Mod py 中 我