美文网首页
PyDev import 问题

PyDev import 问题

作者: clive0x | 来源:发表于2019-02-17 00:55 被阅读0次

    习惯了VS写C#、Eclipse写JAVA,写Python代码时,Ipython的自动联想功能也爽,几乎不会有啥意外。用IDE如PyDev和Pycharm写代码时,自动联想功能傻了……

    如用Pwntools包和Tensorflow包,import时__init__.py经常由于Name Confusion导致自动联想失效。

    折腾了一个晚上,终于找到解决问题方法了。通常包都会引入名字到全局命名空间,如import tensorflow as tf,from pwn import * ,避开名称空间的方法是把tensorflow或者pwn加入到bullins,eclipse中操作windows>Preferences>Pydev>Interpreters>Python Interpreter>Forced Builtins。

    builtin 通俗理解为Python内置对象。如abs()、sum()等。

    Python2 的__builtins__与__builtin__区别:

    1.如果在main module,__builtins__ = __builtin__

    2.如果其它module,__builtins__  = __builtins__.__dict__

    __builtins__ 是Python解释器用来加载__builtin__空间对象的,并设置名称引用至后者。

    Python3 __builtin__改名为builtins。

    Python可动态修改的东西太多了,用来藏病毒,可以藏很深。这玩意比Java classpath还复杂,Java classpath通过双亲委托查找路径很清淅,话说java动态修改classpath最牛B的项目就是sqoop1。

    相关文章

      网友评论

          本文标题:PyDev import 问题

          本文链接:https://www.haomeiwen.com/subject/uxuweqtx.html