Python 使rope项目了解核心库

Python 使rope项目了解核心库,python,rope,Python,Rope,我正在一个大型的代码库上工作,我想建立rope项目,以便rope能够快速完成我想要的任务。值得一提的是,我将rope与emacs一起使用,但如果我理解正确,rope的行为应该独立于编辑器 代码库有许多应用程序使用的核心库。每个应用程序都依赖于一个或多个核心库,但决不依赖于另一个应用程序。以下是目录结构的简化表示: repo |-- core | |--CoreLib1 | | |-- CoreLib1.egg-info | | `-- library_module |

我正在一个大型的代码库上工作,我想建立rope项目,以便rope能够快速完成我想要的任务。值得一提的是,我将rope与emacs一起使用,但如果我理解正确,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
  • 重新加载rope项目(确保它正在使用新更新的
    config.py
  • 生成自动导入缓存。这需要60秒以上的时间,不能在后台运行
  • 编辑
    repo/apps/AppA/app_a_module/src.py
    时,尝试使用rope从core自动导入名称。它起作用了
  • 快,但不起作用:

  • 确保整个代码库中没有
    .ropeproject
    目录。在
    /repo/apps/AppA/
    中创建rope项目
  • 将以下代码放入
    apps/AppA/.ropeproject/config.py
  • src_dirs=[ 肮脏的 对于os.walk(“../../core/”)中的dirpath、dirname和文件名 如果有(映射(lambda dirname:dirname.endswith('.egg info'),dirnames)) ] 对于src_dirs中的src_dir: prefs.add('python\u path',src\u dir)
  • 重新加载rope项目(确保它正在使用新更新的
    config.py
  • 生成自动导入缓存。这不到1秒
  • 编辑
    repo/apps/AppA/app_a_module/src.py
    时,尝试使用rope从core自动导入名称。它失败了
  • 我想在rope的能力范围内做什么?它能工作吗?如果是,我做错了什么?

    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) 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)