【发布时间】:2014-04-28 17:59:46
【问题描述】:
我在 Emacs 中使用 Jedi 进行 Python 自动补全,但它不是我的代码的依赖项,所以我不想把它放在我的 requirements.txt 中。 (其他开发者可能不会使用 Jedi 编辑器插件,当我部署到 Heroku 时肯定不需要它。)
但是 Jedi 必须在我的 virtualenv 中可用才能运行,即如果我不能
import jedi
它不起作用。
有没有一种好方法可以全局安装 Jedi,以便在我所有的 virtualenvs 中都可以使用它?
我认为我想要的是
- 将 Jedi 安装到
~/.local/lib/python2.7/site-packages/和pip's--userflag,然后到 - 使用 the
--system-site-packagesflag 的等效项创建我的 virtualenv,但用于用户包而不是系统包。
我目前的解决方法是在我的每个 virtualenvs 中使用pip install jedi。然后,当我添加新的依赖项时,我 pip install foo、pip freeze > requirements.txt,然后在提交之前手动从文件中删除 jedi 和其他一些内容。显然,这是耗时且容易出错的。
有人有更好的解决方案吗?
【问题讨论】:
-
为什么不将它安装在全局站点包中?了解您正在使用的 Emacs 的 Jedi 插件也会有所帮助。
-
@DaveHalter,我正在使用
emacs-jediintalled via MELPA。我不会在全球范围内安装 Jedi 并回退到那个位置,因为我不希望我的 virtualenvs 看到我已安装的任何其他全局软件包......如果它们是独立的,我可以更有信心我有我在requirements.txt中列出的所有依赖项。
标签: python pip virtualenv python-jedi