python - imp 模块已弃用,取而代之的是 importlib

标签 python pandas python-importlib imp

我在我的代码中使用了 pandas,而在 pandas 中,他们使用了 imp 结节。现在我收到以下错误/警告

C:\Users\refaelc\AppData\Local\Temp\collection_id-96deaf03-9b39-46c0-a843-63f6101481c1-5289121858290797008.csv
Step07: Compare the downloaded and the template files
C:\Users\refaelc\AppData\Local\Continuum\Anaconda3\lib\importlib\_bootstrap.py:205: ImportWarning: can't resolve package from __spec__ or __package__, falling back on __name__ and __path__
  return f(*args, **kwds)
C:\Users\refaelc\AppData\Local\Continuum\Anaconda3\lib\site-packages\_pytest\assertion\rewrite.py:7: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  import imp
Item is missing from collections - int

现在我做了一些搜索,发现 imp 模块正在被 importlib 模块替换。我更新了 Panda,但没有用。我似乎不太可能需要更改 Panda 的包代码。

任何想法/修复?

最佳答案

我也遇到了同样的问题,但就我而言,这是与 sklearn 库有关的,为了修复警告,我就是这样做的(您也可以试试这个):

  1. 以编辑权限打开名为 cloudpickle.py 的文件,该文件位于 \sklearn\externals\joblib\externals\cloudpickle\cloudpickle.py
  2. 将文件顶部的 import imp 替换为 import importlib
  3. 找到名为 find_module 的函数并替换该行 文件,路径,描述 = imp.find_module(部分,路径)文件,路径,描述 = importlib.utils.find_spec(path)

因此,总而言之,您必须在引发错误的文件中将提及的 imp module 替换为 importlib。在您的情况下,文件 rewrite.py 位于 C:\Users\refaelc\AppData\Local\Continuum\Anaconda3\lib\site-packages\_pytest\assertion\rewrite.py

关于python - imp 模块已弃用,取而代之的是 importlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43964166/

相关文章:

当 n > 373 且始终在线第 32 行时,Python 程序停止运行

python - 每日 cron 运行终止,因为它超过了最大运行时间

python - 遍历 Python 查询字符串中的日期列表

python - 按名称将列组融合到目标列中

python - imp.get_suffixes() 已弃用,如何修复?

python importlib 从错误的目录导入

python-3.x - 从字符串导入lib.reload模块?

python - Scrapy:如何使用CSS和XPath获取地址?

python - 将 count 方法的输出转换为百分比值

python - 将一种方法应用于 Pandas 数据框中的几个选定列