关于python:Pycharm在更新到2016.2后导入RuntimeWarning

Pycharm import RuntimeWarning after updating to 2016.2

在更新到新版本2016.2之后,我得到

1
2
3
4
RuntimeWarning: Parent module 'tests' not found while handling absolute import
  import unittest
RuntimeWarning: Parent module 'tests' not found while handling absolute import
  import datetime as dt

"tests"是我的主应用程序包中的一个包,当我尝试在这个文件夹中执行单元测试时,会收到这些警告。此问题仅在更新到2016.2之后出现。除了警告之外,其余代码工作正常。

编辑:这是一个已知的问题-https://youtrack.jetbrains.com/issue/py-20171。他们建议替换pycharm安装文件夹中的utrunner.py。


这是2016.2版本中引入的已知问题。在这里的JetBrains网站上可以看到进展。根据本页,它将在2017.1版本中修复。您可以遵循其他人同时提到的utrunner.py解决方案-此文件的副本将附加到链接的票据。


最新建议(2016年12月19日)是将这一行放在单元测试脚本的顶部:

1
from __future__ import absolute_import


在OS X上,我通过替换

1
Applications/PyCharm.app/Contents/helpers/pycharm/utrunner.py

可以在中找到旧版本的http://code.metager.de/source/xref/jetbrains/intellij/community/python/helpers/pycharm/utrunner.py


在Ubuntu 16.04上,Bobby的解决方案也有效:

只需替换您的本地utrunner.py文件

1
/usr/local/pycharm-edu-3.0/helpers/pycharm/utrunner.py

来自JetBrains网站:http://code.metager.de/source/xref/jetbrains/intellij/community/python/helpers/pycharm/utrunner.py


在Windows10上,Bobby的解决方案也有效:

只需将本地utrunner.py文件替换为

1
C:\Program Files (x86)\JetBrains\PyCharm 2016.3\helpers\pycharm

使用JetBrains网站上的一个:http://code.metager.de/source/xref/jetbrains/intellij/community/python/helpers/pycharm/utrunner.py