更新到新版本 2016.2 后,我得到了
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 网站 here 上跟踪进度。根据此页面,它将在 2017.1 版本中修复。您可以按照其他人同时提到的 utrunner.py 解决方法 - 此文件的副本附加到链接的票证上。
最新的建议 (Dec. 19, 2016) 是将此行放在单元测试脚本的顶部:
from __future__ import absolute_import
__future__
导入仅用于修复 PyCharm 中的错误。至少在我的情况下,源代码不需要修复。因此,似乎遵循已接受答案中的建议会更好,因为那时根本不需要触及源代码。
from __future__ import absolute_import
。如果您的 Python 2.7 代码可以接受,我更喜欢使用所有 future 导入。它将简化最终迁移到 Python 3.6 的过程。
utrunner.py
并替换原来的似乎不起作用。也许 Pycharm 正在缓存它;我没有尝试重新启动我的机器。
在 OS X 上,我通过替换解决了这个问题
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
文件替换为
/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
在 Windows 10 上,Bobby 的解决方案也适用:
只需将您的本地 utrunner.py 文件替换为
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
不定期副业成功案例分享