繁体   English   中英

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

[英]imp module is deprecated in favour of importlib

我在我的代码中使用 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 的 package 代码。

任何想法/修复?

我也遇到了同样的问题,但在我的情况下,它与 sklearn 库有关,为了解决警告,这是我所做的(您也可以尝试这样做):

  1. 使用名为cloudpickle.py编辑权限打开文件,该文件位于此位置\\sklearn\\externals\\joblib\\externals\\cloudpickle\\cloudpickle.py
  2. 用文件顶部的import importlib替换import imp
  3. 找到名为find_module函数并将行file, path, description = imp.find_module(part, path)替换为file, path, description = importlib.utils.find_spec(path)

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

importlib.util.find_spec(path) 而不是 utils,应该可以工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM