atom-community / atom-community/ide-python
Ability for completion/going-to-definition for symbols from virtualenv bound to specific project
- 主要言語
- JavaScript
- スター
- 238
- フォーク
- 40
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
I use [pyenv](https://github.com/pyenv/pyenv) to keep multiple python installation (py2, py3 etc.)
And I use [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv) to maintain separate python environments for different projects (i.e. virtualenv).
All python versions and virtualenvs live in directory `~/.pyenv/versions`.
```shell
$ ls ~/.pyenv/versions
2.7.13 2.7.14 3.6.3 3.6.4 3.7.0 project-x project-y
$ ~/.pyenv/versions/3.7.0/bin/python -V
Python 3.7.0
$ ~/.pyenv/versions/project-x/bin/python -V
Python 2.7.14
```
All my projects' code live in `~/workspace`:
```shell
$ ls ~/workspace
project-x project-y
```
I always make my project name as the same as its virtualenv name, you see, there are `project-x` and `project-y`.
I also place a file named of `.python-version` under project root dir, [let the magic automatically activate the specific virtualenv on entering project dir](https://github.com/pyenv/pyenv-virtualenv#activate-virtualenv).
```shell
$ cat ~/workspace/project-x/.python-version
project-x
$ cd ~/workspace/project-x
(project-x) $
```
I use [Atome Project Manager](https://atom.io/packages/project-manager) to remember my project dirs, So I can do quick switch from and to different editor windows, each window for one project.
---
So I want **IDE-python** call the right python binary and do completion/going-to-definition from the right python environment, Possible?
コントリビューションガイド
調査の方向性
まず、プロジェクトルートの .python-version と pyenv パスを再現用のセットアップとして使用し、IDE-python が Atom プロジェクトのインタープリターをどのように選択するかを追跡します。project-x と project-y について、completion と go-to-definition が共有の Python インストールではなく、選択されたプロジェクトの virtualenv からシンボルを解決できれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- python
- 領域
- developer-experience, tooling
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100