python - 覆盖导入中已安装的模块

标签 python module

我目前正在开发一个即将发布的包。因此,我正在尝试在我的系统上安装它(通过 setup.py)。但是,我还需要访问当前(源代码)包,例如用于测试。

是否可以显式强制导入本地包而不是已安装的版本?我已经尝试过在 sys.paths 的开头添加路径,但没有成功。

我想这个问题涉及Python如何准确地查找要导入的模块,以及如何更改顺序。

编辑:这是一个愚蠢的错误,在 sys.paths 的开头添加。我在其他地方有一些首先执行的其他 import 语句。

最佳答案

  1. force importing the local package 之类的事情是个坏主意。 .

  2. Python3 总是首先导入内置模块,显然您正在使用 Python3,因为 Python2 是本地优先的。

  3. 我不知道如何解决这个问题,如果我是你,我会重命名该文件。

编辑

您不使用append因为追加是到最后。使用insert 。 在我的CPU上测试过。我创建了一个requests.py在另一个文件夹中。

>>> import sys
>>> sys.path.insert(0 ,"path-to-another-folder/")
>>> import requests
>>> requests.get
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'get'
>>>

如果我不这样做sys.path.insert(0 ,"path-to-another-folder/") , requests已正常导入。

关于python - 覆盖导入中已安装的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26512926/

相关文章:

python - 如何使用 html 和 css 在 python 中连续显示 3 个帖子?它现在显示最后一个帖子下的每个帖子

python - 用户未在 Django 中进行身份验证?它显示错误

ruby-on-rails - 使用 ActiveSupport::Concern 功能时,如何通过将 "nested"模块包含为该类的实例方法来将方法添加到类中?

包含 Fortran 中的子例程和函数的模块

windows - 在 Windows 7 上安装 Haskell 模块

python - 搜索包含非 ASCII 字符的 python 模块

python - 我有一个 cPickle 错误,不知道他的意思,也许有人知道这是什么意思?

python - 加拿大的 Scattergeo 在 python 中使用 plotly

python - Graphviz 边的默认标签

php - 您将如何测试表达式引擎中的模块是否有错误?