问题标签 [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 投票
3 回答
493 浏览

python - Python - 导入错误

我做了我不应该做的事情,写了 4 个模块(6 小时左右),一路上没有运行任何测试。

我在被调用的内部有一个方法,在/mydir/__init__.py被调用的内部有一个get_hash()类。/mydir/utils.pySpamClass

/mydir/utils.pyget_hash()从进口/mydir/__init__

/mydir/__init__.pySpamClass从进口/mydir/utils.py

类和方法本身都可以正常工作,但由于某种原因,如果我尝试导入/mydir/,我会收到一个导入错误,说"Cannot import name get_hash"from /mydir/__init__.py

唯一的堆栈跟踪是表示 import 的__init__.pySpamClassSpamClass下一行是尝试导入时发生错误的位置get_hash。为什么是这样?

0 投票
3 回答
23900 浏览

python - 为什么 Python 的 __import__ 需要 fromlist?

在 Python 中,如果你想以编程方式导入一个模块,你可以这样做:

如果要导入子模块,您会认为这很简单:

当然,这是行不通的;你module_name又来了。你所要做的:

为什么?的实际值fromlist似乎根本不重要,只要它不为空即可。要求一个论点,然后忽略它的价值有什么意义?

Python 中的大多数东西似乎都是有充分理由的,但对于我的一生,我无法为这种行为的存在提出任何合理的解释。

0 投票
6 回答
116305 浏览

python - 我应该使用“import os.path”还是“import os”?

根据官方文档os.path是一个模块。因此,导入它的首选方式是什么?

或者...

请不要回答“os为我导入作品”。我知道,它现在也适用于我(从 Python 2.6 开始)。我想知道的是关于这个问题的任何官方建议。所以,如果你回答了这个问题,请张贴你的参考资料

0 投票
8 回答
53595 浏览

python - 防止 Python 缓存导入的模块

在使用 IPython 在 Python 中开发一个大型项目(拆分为多个文件和文件夹)时,我遇到了缓存导入模块的麻烦。

问题是指令import module只读取该模块一次,即使该模块已更改!所以每次我更改包中的某些内容时,我都必须退出并重新启动 IPython。痛苦。

有没有办法正确强制重新加载某些模块?或者,更好的是,以某种方式阻止 Python 缓存它们?

我尝试了几种方法,但都没有奏效。特别是我遇到了非常非常奇怪的错误,例如某些模块或变量神秘地等于None...

我发现的唯一明智的资源是Reloading Python modules,来自 pyunit,但我没有检查它。我想要那样的东西。

一个不错的选择是让 IPython 重新启动,或者以某种方式重新启动 Python 解释器。

那么,如果你用 Python 开发,你找到了什么样的解决方案来解决这个问题呢?

编辑

说清楚:显然,我知道一些旧变量取决于模块的先前状态可能会保留。那个我能接受。为什么在 Python 中强制重新加载模块而不发生各种奇怪的错误如此困难?

更具体地说,如果我将整个模块放在一个文件中module.py,则以下内容可以正常工作:

这段代码工作得很好,我可以在几个月内不退出 IPython 的情况下进行开发。

但是,每当我的模块由几个子模块组成时,地狱就会崩溃:

为什么无论我将模块放在一个大文件中还是在多个子模块中,Python 会有如此不同?为什么这种方法不起作用?

0 投票
4 回答
7442 浏览

python - 相对进口的噩梦,pep 366如何工作?

我有一个这样的“规范文件结构”(我给出了合理的名称以方便阅读):

在这种结构中,例如每个包中包含的模块可能希望helpers通过相对导入来访问实用程序,例如:

该程序以这种方式使用文件“作为脚本”运行__main__.py

试图遵循PEP 366我在__main__.py这些行中添加了:

但是运行时:

怎么了?处理和有效使用相对进口的正确方法是什么?

我也尝试将当前目录添加到 PYTHONPATH,没有任何变化。

0 投票
9 回答
52780 浏览

python - Python 鼻子导入错误

我似乎无法让鼻子测试框架识别文件结构中我的测试脚本下的模块。我已经设置了演示问题的最简单示例。我会在下面解释。

这是包文件结构:

foo.py 包含:

测试/test_foo.py 包含:

两个init .py 文件都是空的

如果我nosetests -vv在主目录( foo.py 所在的位置)中运行,我会得到:

当我从 tests/ 目录中运行时,我得到了同样的错误。根据我发现的文档和示例,nose 应该将所有父包添加到路径以及调用它的目录中,但在我的情况下似乎没有发生这种情况。

我正在使用 Python 2.6.2 运行 Ubuntu 8.04。如果这很重要,我已经手动构建和安装了鼻子(不是使用 setup_tools)。

0 投票
6 回答
138440 浏览

python - 在 Python 中,当您在函数内部导入时会发生什么?

在速度和内存效率方面,在函数内部导入 Python 模块和/或函数的优缺点是什么?

每次运行函数时是否重新导入,或者无论函数是否运行,都可能只在开始时重新导入一次?

0 投票
2 回答
4207 浏览

python - Python导入错误:没有命名的模块

我对 Python 很陌生。我有一个现有的示例项目,其中包含YYYpath中的脚本XXX/YYY,以及一个A.py一一调用这些脚本的脚本。

我只想在脚本中添加一个脚本ZZZ.pyYYY以便在它们之后调用。我将此脚本添加到同一路径 ( XXX/ZZZ.py) 中并尝试将其导入A.py并调用它。

但我得到了这个错误:

我想知道:有什么区别?为什么 Python 可以导入XXX/YYYpy 文件但返回此错误ZZZ.py

0 投票
2 回答
592 浏览

python - Python - 如何使用复杂的目录结构使用 PYTHONPATH?

考虑以下文件\目录结构:

我应该如何在foo.py中使用sys.path.append以便可以使用bar1.pybar2.py导入 会是什么样子?

0 投票
2 回答
5492 浏览

python - celery-django 找不到设置

我有一个使用Celery运行异步任务的 Django 项目。我正在 Windows XP 机器上进行开发。

启动我的 Django 服务器 ( python manage.py runserver 80) 工作正常,但尝试启动 Celery Daemon ( python manage.py celeryd start) 失败并出现以下错误:

ImportError:无法导入设置“src.settings”(它在 sys.path 上吗?是否有语法错误?):没有名为 src.settings 的模块

sys.path 包含'C:\development\SpaceCorps\src',所以我不确定为什么它找不到这个模块。

这是启动守护程序的完整输出: