Python 在PyDev中重命名重构失败了吗?
我有点惊讶地发现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项目
- 在其中创建一个新模块(比如
),util.py
- 在模块中创建一个常量,e。g
MYCONST=“某些常量值”
- 在模块中创建一个常量,e。g
- 在项目中创建第二个脚本,例如
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
中重命名
问题:
import util
print util.MYCONST
但如果我直接导入名称:
from util import MYCONST
print MYCONST
那么我就不能重现这个错误了
虽然这似乎是一个解决方法(可能是!),但我希望能够使用限定名称,至少有时是这样。因此,主要问题仍然悬而未决。你说你在创建项目后刚刚创建了一个模块:PyDev没有抱怨没有包存在?问题是PyDev不允许我在包之外创建模块(我使用的版本与你、eclipse和PyDev相同)。那么你已经将文件导入到项目中了吗?什么??在包资源管理器中右键单击项目名称→ <代码>新建→ <代码>PyDev模块→ 选择一个
名称
,但将包
留空,瞧。这对你来说不一样,让我们来。