不推荐使用imp模块以支持importlib

时间:2017-05-14 12:59:28

标签: python pandas python-importlib imp

我在我的代码和熊猫中使用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的包裹代码。

有任何想法/修复?

1 个答案:

答案 0 :(得分:4)

我也面临着同样的问题,但是我的情况是与sklearn Library有关,为了解决警告,这是我所做的(您也可以这样做):

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

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