问题标签 [python-import]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
33 回答
1977678 浏览

python - Python 错误“ImportError:未命名模块”

Python 安装在本地目录中。

我的目录树如下所示:

我的代码在这里:

为了运行这个例子,我写了python mountain.py,在我的代码中:

我得到了错误:

我已经检查过了sys.path,那里有目录/site-packages。此外,我__init__.py.bin在工具包文件夹中有文件,以向 Python 表明这是一个包。__init__.py.bin我在示例目录中也有一个。

我不知道为什么 Python 在sys.path. 有任何想法吗?会不会是权限问题?我需要一些执行权限吗?

0 投票
3 回答
52900 浏览

python - 由于旧的解释器版本,如何优雅地处理失败的未来功能(__future__)导入?

您如何优雅地处理失败的未来功能导入?如果用户使用 Python 2.5 运行并且我的模块中的第一条语句是:

为 Python 2.5 编译此模块将失败,并显示:

我想通知用户他们需要使用 Python >= 2.6 重新运行程序,并且可能会提供一些有关如何执行此操作的说明。但是,引用PEP 236

可以出现在 future_statement 之前的唯一行是:

  • 模块文档字符串(如果有)。
  • 评论。
  • 空行。
  • 其他future_statements。

所以我不能做这样的事情:

因为它产生:

PEP 中的这个片段似乎给了内联执行它的希望:

问:我想将 future_statements 包装在 try/except 块中,这样我就可以根据运行的 Python 版本使用不同的代码。为什么我不能?

答:对不起!try/except 是一个运行时特性;future_statements 主要是编译时的噱头,您的 try/except 会在编译器完成后很久才发生。也就是说,当您尝试/排除时,对模块有效的语义已经完成。由于 try/except 不会完成它看起来 应该完成的事情,因此根本不允许这样做。我们还希望使这些特殊声明非常易于查找和识别。

请注意,您可以直接导入 __future__,并使用其中的信息以及 sys.version_info 来确定您正在运行的版本与给定功能的状态相关的位置。

想法?

0 投票
5 回答
1047 浏览

python - 尝试从多个位置导入模块的更整洁的方式?

有没有办法整理以下代码,而不是一系列嵌套的 try/except 语句?

0 投票
5 回答
35825 浏览

python - Python:导入包含的包

在位于包内的模块中,我需要使用__init__.py该包中定义的函数。如何在包中的模块中导入包,以便我可以使用该功能?

在模块内部导入__init__不会导入包,而是导入名为 的模块__init__,导致两个不同名称的事物副本......

有没有一种pythonic方法可以做到这一点?

0 投票
22 回答
785832 浏览

python - 如何卸载(重新加载)Python 模块?

我有一个长期运行的 Python 服务器,并且希望能够在不重新启动服务器的情况下升级服务。这样做的最佳方法是什么?

0 投票
3 回答
8282 浏览

python - Python - 从子文件夹进行绝对导入

基本上我和这个人问了同样的问题:如何在 Python 中进行相对导入?

但是没有人给他一个正确的答案。鉴于您在一个子文件夹中,并且您想进入一个目录,然后进入另一个子文件夹,按照他们的建议做是行不通的(正如 OP 在他对他们的回答的评论中指出的那样)。

我知道您可以使用 sys.path 来做到这一点,但我更喜欢更简洁的方法。

例子:

如何将 Module_A 导入 Module_B?

0 投票
4 回答
7277 浏览

python - 关于python中全局变量的困惑

我是 python 新手,所以请原谅可能是一个非常愚蠢的问题。

基本上,我有一个名为 _debug 的全局变量,用于确定脚本是否应该输出调试信息。我的问题是,我不能在与使用它的脚本不同的 python 脚本中设置它。

我有两个脚本:

运行 two.py 会产生错误:

谁能告诉我我做错了什么?

0 投票
11 回答
177884 浏览

python - 如何动态加载 Python 类

给定一个 Python 类的字符串,例如my_package.my_module.MyClass,加载它的最佳方法是什么?

换句话说,我正在寻找Class.forName()Java 中的等价物,Python 中的函数。它需要在 Google App Engine 上运行。

最好这是一个接受类的 FQN 作为字符串的函数,并返回对该类的引用:

0 投票
4 回答
12645 浏览

python - 导入和提供可选功能的 Python 良好做法是什么?

我正在 github 上写一个软件。它基本上是一个带有一些额外功能的托盘图标。我想提供一段工作代码,而实际上不必让用户安装本质上是可选功能的依赖项,而且我实际上不想导入我不会使用的东西,所以我认为这样的代码将是“好的解决方案”:

不过也有一些问题。如果用户格式化他的机器并安装他的操作系统的最新版本并重新部署这个应用程序,功能会突然消失而没有警告。解决方案是在配置窗口中显示:

但是,如果这是一个 mac,我怎么知道我没有让用户去寻找他们永远无法填补的依赖项?

第二个问题是:

问题。我可以确定该文件在所有 Linux 发行版中始终称为 gnomekeyring.so 吗?

其他人如何测试这些功能?基本问题

是代码是全球性的,这些可能会乱七八糟,即使用户不想要 pynotify....无论如何它都已加载。

那么人们认为解决这个问题的最好方法是什么?

0 投票
2 回答
1286 浏览

python - Python包导入错误

我正在尝试打包我的模块,但我似乎无法让它工作。

我的目录树如下所示:

我正在使用的代码是

我收到错误:

任何想法出了什么问题?这是在 Ubuntu 8.10 上使用 Python 2.5。

在此先感谢您的帮助。