Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在PyDev中重命名重构失败了吗?_Python_Eclipse_Rename_Pydev_Automated Refactoring - Fatal编程技术网

Python 在PyDev中重命名重构失败了吗?

Python 在PyDev中重命名重构失败了吗?,python,eclipse,rename,pydev,automated-refactoring,Python,Eclipse,Rename,Pydev,Automated Refactoring,我有点惊讶地发现PyDev中的重命名重构功能已经损坏。看到我的错误 创建一个新的PyDev项目 在其中创建一个新模块(比如util.py), 在模块中创建一个常量,e。gMYCONST=“某些常量值” 在项目中创建第二个脚本,例如scriptA.py 导入util和 使用常量:print util.MYCONST 在项目中创建第三个脚本,例如scriptB.py 还导入util和 还使用常量:print util.MYCONST 重命名常量MYCONST现在应该在所有三个文件中重

我有点惊讶地发现PyDev中的重命名重构功能已经损坏。看到我的错误

  • 创建一个新的PyDev项目
  • 在其中创建一个新模块(比如
    util.py
    ),
    • 在模块中创建一个常量,e。g
      MYCONST=“某些常量值”
  • 在项目中创建第二个脚本,例如
    scriptA.py
    • 导入
      util
    • 使用常量:
      print util.MYCONST
  • 在项目中创建第三个脚本,例如
    scriptB.py
    • 还导入
      util
    • 还使用常量:
      print util.MYCONST
重命名常量
MYCONST
现在应该在所有三个文件中重命名它

像go to declaration(Ctrl鼠标左键单击或F3)这样的东西也可以工作,因此PyDev知道
util.py
scriptA.py
之间的连接

但是如果您重命名文件
scriptA.py
中的常量(在单词
MYCONST
上使用ShiftAltr),它将在
scriptA.py
scriptB.py
中重命名,但在
util.py
中不会重命名(当然,这会有效地破坏代码)。如果您尝试在
util.py
中重命名它,它将仅在该文件中重命名,而不会在
scriptA.py
scriptB.py
中重命名

问题:

  • 其他人能重现我的问题吗
  • 是否存在导致问题的配置问题,以便我可以自己消除该影响
  • 这是一个已知的bug(我没有发现任何与之相关的东西),甚至可能有修复或解决方法吗
  • 这是否仅存在于我的产品版本中
  • 我正在使用Eclipse“Luna Service Release 2(4.4.2)”和PyDev 3.9.2.20150502007

    编辑:

    (已删除-错误未连接到程序包,或者与最初看起来的程序包不同)

    编辑2:

    我刚刚发现,只有在导入模块名,然后使用限定名访问常量时,才会出现问题:

    import util
    print util.MYCONST
    
    但如果我直接导入名称:

    from util import MYCONST
    print MYCONST
    
    那么我就不能重现这个错误了


    虽然这似乎是一个解决方法(可能是!),但我希望能够使用限定名称,至少有时是这样。因此,主要问题仍然悬而未决。

    你说你在创建项目后刚刚创建了一个模块:PyDev没有抱怨没有包存在?问题是PyDev不允许我在包之外创建模块(我使用的版本与你、eclipse和PyDev相同)。那么你已经将文件导入到项目中了吗?什么??在包资源管理器中右键单击项目名称→ <代码>新建→ <代码>PyDev模块→ 选择一个
    名称
    ,但将
    留空,瞧。这对你来说不一样,让我们来。