问题标签 [python-module]

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 投票
6 回答
4495 浏览

python - “ImportError: No module named”错误似乎与我的代码无关

我正在尝试完成Learn Python The Hard Way, 2nd Edition 的练习 47,但我在运行时收到此错误:tests/ex47_tests.py

我认为这是我在代码中做错的事情,因为我对此很陌生,所以我从一个似乎已经成功完成练习的 GitHub 用户那里克隆了这个 repo 。

不仅我们代码的相关部分相同,而且当我尝试运行tests/ex47_tests.py从他那里克隆的代码时,我也会收到相同的错误。所以现在我迷路了,希望有人能为我提供解决方案。有任何想法吗?

0 投票
3 回答
4614 浏览

python - Python 模块:当导入它们时,它们会进入内存吗?

我刚刚为初学者完成了这个关于在 python 中创建和导入模块的练习。

我想知道模块中的所有内容是否都导入到计算机的内存中?

随着代码变长和导入的模块越来越多,以后是否会对内存产生影响?

因此,我是否需要了解内存管理才能编写资源高效的代码?

0 投票
2 回答
44502 浏览

python - 如何在 Ubuntu 上安装 Python 模块

我刚刚在 Python 上写了一个函数。然后,我想把它做成模块并安装在我的 Ubuntu 11.04 上。这就是我所做的。

  1. 创建 setup.py 以及 function.py 文件。

  2. 使用 $Python2.7 setup.py sdist 构建分发文件

  3. 然后安装它 $Python2.7 setup.py install

一切顺利。但是,后来我想在我的代码中使用导入它的模块。我收到导入错误:ImportError: No module named '--------'

PS。我在谷歌上搜索并没有找到特定的答案。详细的答案将不胜感激。

0 投票
2 回答
2186 浏览

python - 重新导入被测模块以丢失上下文

许多 Python 模块在不定义类的情况下保留内部状态,例如,logging维护多个可通过getLogger().

你如何测试这样的模块?
使用标准unittest工具,我希望类中的各种测试TestCase重新导入我的被测模块,以便每次它失去其上下文。这可以做到吗?

0 投票
3 回答
394 浏览

python - 导入模块时发生的奇怪事情

我讨厌在这个标题下提出这个问题,但我实际上不知道发生了什么,所以就这样吧。

我正在做另一个项目,我想在其中使用日志记录模块。代码分布在几个文件中,而不是为单独的文件创建单独的记录器对象,我想创建一个包含内容的 logs.py

并使用此类(在不同的文件中。)

  1. 我剥离了整个问题来在这里问这个问题。现在,我有 3 个文件,a.py、b.py 和 main.py。所有 3 个文件都实例化了 logs.Logger 类并打印了一条调试消息。
  2. a.py & b.py导入“日志”并打印它们的调试消息。
  3. main.py导入日志,a & b;并打印它自己的调试消息。

文件内容如下:http: //i.imgur.com/XoKVf.png

为什么来自 b.py 的调试消息打印 2 次和来自 main.py 的 3 次?

0 投票
1 回答
317 浏览

python - 使用外部定义的函数修改模块全局变量

我有一个非常简单的装饰器函数,用于通过模块的__all__属性公开模块中定义的函数。因为我将它用于包中的多个模块,所以我在包的__init__.py.

因为我不能__all__在定义中使用,因为它会引用__all__模块__init__.py(或者更确切地说是包)的,我目前这样做是这样的:

这似乎工作得很好。但是我不确定使用该__global__属性是否是理想的方法,特别是因为该属性似乎没有记录(至少我在文档中找不到任何关于它的信息)。

是否可以__globals__正常使用,或者是否有更简单、更强大的方法来完成这项工作?

编辑:

为了澄清起见,我不一定需要访问__all__模块的属性。我可以轻松地使用不同的名称并最终得到相同的问题。我之所以使用它,是__all__因为它在模块中保存所有暴露对象的目的符合我的意图。但同时我也可以命名它exposedFunctions或其他任何东西。所以问题更多的是关于如何访问模块的全局属性。

0 投票
1 回答
23063 浏览

python - python本地模块

我有几个项目目录,并希望拥有特定于它们的库/模块。例如,我可能有这样的目录结构:

假设有一个调用addin的函数myfunctions.py,我可以mycode.py用最简单的例程调用它:

但要更复杂一点,我也可以

这是最惯用的方法吗?还有一些关于修改PYTHONPATHos.environ['PYTHONPATH']?)的提及,但这是我应该研究的还是其他事情?

此外,我还看到import了包含在类语句中的语句,在其他情况下,这些语句定义在包含类定义的 Python 文件的顶部。有没有正确/首选的方法来做到这一点?

0 投票
3 回答
417 浏览

python - 是否可以通过返回之类的方式结束 python 模块导入?

我想知道是否有一种方法可以编写下面的模块代码,而不必在整个模块代码中添加另一个缩进级别。

我正在寻找这样的东西:

注意,我不想抛出异常,导入应该正常通过。

0 投票
1 回答
317 浏览

python - Python:获取导入模块的句柄

我编写了一个应用程序,让用户可以选择指定特定的网络扫描工具(例如 nmap、xprobe、p0f),然后使用该工具扫描给定的子网(我没有重新实现该工具,只需在 shell 中调用它并解析它对我的应用程序的响应),解析结果并以特定格式存储在 DB 中。这个应用程序基本上是另一个应用程序的馈送应用程序,它将使用数据库中的数据。

我编写了我的代码,以便所有扫描工具接口都作为插件实现。结构是

因此,要添加新的扫描界面,开发人员只需编写一个 tool.py 文件(当然语义正确)并将其放入 Plugins 文件夹中。

为此,我需要能够在运行时导入正确的 python 模块。

取决于用户输入的内容

这是我添加的代码

代码正常工作。但是,当我尝试使用PyInstaller(对于 Windows/*Nix 平台)将它捆绑到一个可执行文件中时,它在 find_module 和 load_module 中有很多麻烦,因此我得到一个 ImportError (可能是因为路径没有在可执行文件中正确展开减压)。

我的问题是 - 在 Python 中是否有另一种方法可以使用它来实现相同的功能(可能希望与 PyInstaller 一起工作)?

我之前曾问过这个问题,在 PyInstaller 中寻找解决方法,但没有任何回应迫使我在 Python 中寻找解决方法

0 投票
3 回答
14209 浏览

python - 如何将 Python 模块拆分为多个文件?

我有一个包含 3 个类的 Python 模块:A、A1 和 A2。A1 和 A2 派生自 A。A 包含对 A1 和 A2 进行操作的函数。

当它在一个 .py 文件中时,这一切都很好。但是该文件已经变得很长,我想将 A1 和 A2 拆分为它们自己的文件。尽管存在循环依赖,如何拆分此文件?