我正在开发一个大的代码库,我想建立rope项目,这样rope就可以很快地实现我想要的功能。不管怎样,我在emacs中使用rope,但是如果我理解正确,rope的行为应该独立于编辑器。在
代码库有许多被许多应用程序使用的核心库。每个应用程序都依赖于一个或多个核心库,但从不依赖于另一个应用程序。以下是目录结构的简化表示:
repo |-- core | |--CoreLib1 | | |-- CoreLib1.egg-info | | `-- library_module | | |-- __init__.py | | `-- lib.py | `--CoreLib2 | |-- CoreLib2.egg-info | `-- library_module | |-- __init__.py | `-- lib.py `-- apps |-- AppA | |-- AppA.egg-info | `-- app_a_module | |-- __init__.py | `-- src.py |-- AppB | |-- AppB.egg-info | `-- app_b_module | |-- __init__.py | `-- src.py `-- AppC |-- AppC.egg-info `-- app_c_module |-- __init__.py `-- src.py
我想做什么
目前我有repo/.ropeproject
,rope按我想要的方式运行,但是速度很慢。我相信慢是因为它在任何给定的时间分析所有应用程序中的所有代码。为了解决这个问题,我尝试在每个应用程序(例如/repo/apps/AppA/.ropeproject
)中创建一个rope项目,它知道核心,但不知道其他应用程序。问题是,我不能让它知道核心。这意味着我不能对核心的名字做任何绳索操作。在
有效,但速度慢:
.ropeproject
目录。在/repo/
中创建一个rope项目。在/repo/.ropeproject/config.py
:config.py
)repo/apps/AppA/app_a_module/src.py
时,尝试使用rope从核心自动导入一个名称。它起作用了。在速度快,但不起作用:
.ropeproject
目录。在/repo/apps/AppA/
中创建一个rope项目。在apps/AppA/.ropeproject/config.py
:src_dirs = [ dirpath for dirpath, dirnames, filenames in os.walk('../../core/') if any(map(lambda dirname: dirname.endswith('.egg-info'), dirnames)) ] for src_dir in src_dirs: prefs.add('python_path', src_dir)
config.py
)repo/apps/AppA/app_a_module/src.py
时,尝试使用rope从核心自动导入一个名称。它失败了。在我想在rope的能力范围内做什么?它应该可以工作吗?如果是,我做错了什么?
目前没有回答
相关问题 更多 >
编程相关推荐