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
- 好吧,我给杰特布雷斯开张票。
- 现在,我刚把旧的utrunner.py复制到2016.2-~/pycharm-2016.1/helpers/pycharm/utrunner.py中。
- 我也有同样的行为,真的很烦人!
- @Samkenny-你在哪里找到"老"utrunner的?
- 好的,我在这里找到了它:code.metager.de/source/xref/jetbrains/intellij/community/pyt‌&误8203;hon/…
- 你能分享票的链接吗?(我也有同样的问题,希望投反对票)
- 已将旧文件(/applications/pycharm.app/contents/helpers/pycharm/utrunner‌&8203;.py)替换为要从youtrack.jetbrains.com下载的文件(下载链接)。非常适合我。
- @Mircealungu-备份!
- 这个错误是如何进入生产的?
- 根据问题线索,这将在2017年修复。1:youtrack.jetbrains.com/issue/py-20171 comment=27-1821551
这是2016.2版本中引入的已知问题。在这里的JetBrains网站上可以看到进展。根据本页,它将在2017.1版本中修复。您可以遵循其他人同时提到的utrunner.py解决方案-此文件的副本将附加到链接的票据。
- 已将旧文件(/applications/pycharm.app/contents/helpers/pycharm/utrunner‌&8203;.py)替换为要从youtrack.jetbrains.com下载的文件(下载链接)。非常适合我。
- 最近有一个更新叫做2016.2.2,它还没有解决这个问题…
- 这在Pycharm-2016.2.3中还没有确定。
- 这似乎在2016年3月没有得到解决,同样的警告也出现了。
- 在2016年3月1日似乎没有固定
- 2016.3.2未固定
- 我只是按照@bobby的指示下载并实现了解决方案。在LinuxDebianJessie上为我工作,运行pycharm 2016.3.2。注:在JetBrains的网址上,它指出Pycharm 2017.1中的bug是"过时的"。
- 这个bug是如何发布的
最新建议(2016年12月19日)是将这一行放在单元测试脚本的顶部:
1
| from __future__ import absolute_import |
- 这为我解决了问题,但我认为这不是官方建议,因为提到这一点的用户似乎不是JetBrains开发人员。既然这个警告出现了,即使只进行绝对导入,那么添加这一行也不是不必要的代码,在下一个版本发布后需要删除它吗?
- 在将来的某个时候,它可能需要被移除,是的。有关详细信息,请参阅stackoverflow.com/q/7075082/584846
- 是的,我的观点是,在这种情况下,这确实是不必要的,因为这个特定的__future__导入只是为了修复pycharm中的一个bug。源代码不需要修复,至少在我的例子中是这样。因此,遵循公认答案中的建议似乎会更好,因为这样就根本不需要接触源代码。
- 我赞成以东十一〔一〕号。如果您的python 2.7代码可以接受它,我更喜欢使用将来所有的导入。它将简化最终迁移到Python3.6的过程。
- 这是唯一对我有效的解决方案。下载另一个utrunner.py并替换原始文件似乎不起作用。也许Pycharm正在缓存它;我没有尝试重新启动我的机器。
在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
- 我发现我的安装在另一个地方,但是在用上面的版本替换它之后,它工作了——为什么它们没有回滚?这样做不会使python不稳定吗??
在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