当前位置:  开发笔记 > 编程语言 > 正文

PyCharm Python 3.4问题:未解决的参考

如何解决《PyCharmPython3.4问题:未解决的参考》经验,为你挑选了1个好方法。

我的PyCharm有问题.在我将Python从3.3.5更新到3.4之后,我在PyCharm中遇到了以下形式的恼人错误:

from multiprocessing import Queue, Process

PyCharm强调QueueProcess在红色和示出了一个未解决的引用.代码实际上在命令行和PyCharm内都运行良好.对于这些类,代码完成似乎也被打破了.

我怀疑有问题PYTHONPATH,但我不确定如何解决它.

系统详细信息:通过Homebrew,Pycharm 3.1.1安装的Mac OS X 10.9.2,Python 3.4



1> Jamie..:

这对PYTHONPATH来说不是问题.如果我们查看多处理\ __ init__.py,我们会看到以下内容:

#
# Copy stuff from default context
#

globals().update((name, getattr(context._default_context, name))
                 for name in context._default_context.__all__)
__all__ = context._default_context.__all__

值得注意的是,文件中没有任何内容看起来像Queue,Process等.

现在这是什么context._default_context?如果我们查看multiprocessing\context.py,我们会看到

class BaseContext(object):
    ...
    def Queue(self, maxsize=0):
        '''Returns a queue object'''
        from .queues import Queue
        return Queue(maxsize, ctx=self.get_context())

所以实际上,Queue从未在模块本身中定义,而是通过一些动态代码定义,它在运行时根据用户的操作系统正确设置.这就是Pycharm不知道多处理模块中存在Queue和Process类的原因.

也许你可以提交一个错误报告并尝试让他们有选择地运行代码来找出这些动态名称或在这里做一个例外并提出一些解决方法告诉Pycharm实际上有Queue/Process类,但是看起来好像他们的优先级列表会很低.所以你可能只需要忍受它.(在同一条船上)

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有