在Eclipse (Galileo)中使用Virtualenv

25 投票
5 回答
15759 浏览
提问于 2025-04-15 12:59

有没有人知道怎么把Eclipse(Galileo版)、PyDev和Virtualenv一起用起来?我特别想运行Pinax,不过任何的指导都可以。

我以为我已经搞定了(甚至把所有步骤都写在博客上了,除了最后一步 - 交互式调试),但还是没有找到解决办法。我现在是在OS X系统上,不过任何答案都可以用。到目前为止,我找到的最好资源是:

http://blog.vlku.com/index.php/2009/06/10/djangoeclipse-with-code-complete-screencast/

5 个回答

11

以下是我为在Eclipse中创建Django虚拟环境的步骤;

注意:这些步骤是针对OSX Mountain Lion的,但在其他操作系统上也应该能用。我从不同的来源整理了这些信息,欢迎任何建议或评论。我假设你的系统上已经安装了Python、virtualenv和Eclipse。

首先,打开一个终端,进入你想要放置Eclipse工作区的位置;

  • mkdir projectenv(创建一个名为projectenv的文件夹)
  • cd projectenv(进入刚创建的文件夹)
  • virtualenv venv --distribute(创建一个名为venv的虚拟环境)
  • source venv/bin/activate(激活这个虚拟环境)

接下来,我们来安装一些依赖;

  • pip install Django psycopg2 dj-database-url(你可能需要的依赖可能和我不一样)

现在我们开始创建Django项目并提交到git;

  • django-admin.py startproject myproject(创建一个名为myproject的Django项目)
  • pip freeze > requirements.txt(把当前安装的依赖写入requirements.txt文件)
  • git init; git add; git commit -m myproject(请在这一步之前准备好一个.gitignore文件,里面包含venv和*pyc)

我们的Django项目已经设置好了,现在打开Eclipse,在工作区选择器中,点击浏览,选择projectenv文件夹(也就是包含venv文件夹、myproject文件夹和requirements.txt文件的文件夹),然后点击打开。

接着,去文件,导入,常规,选择现有文件夹作为新项目,选择myproject文件夹,点击完成。你的项目现在会出现在包资源管理器中 - 如果还没有切换到PyDev视图,请切换过去。

在包资源管理器中,右键点击主myproject文件夹,找到PyDev,选择“设置为PyDev项目”。Eclipse会提示你设置解释器,并带你到偏好设置窗口。点击新建,选择/venv/bin/中的解释器,选择python,而不是python2.7,然后点击确定。

你会看到一个库的列表,保持默认,点击完成,你会收到一个警告,但可以继续。

现在,在偏好设置窗口的下半部分点击新建文件夹,选择/venv/lib/,点击确定,然后点击应用,再点击确定。

最后,右键点击manage.py,选择运行方式,运行配置。在参数标签中,输入;

  • runserver --noreload

然后点击应用,再关闭。

这样就完成了,当你想添加一个应用时,可以像平常一样在命令行中使用manage.py startapp myapp(如果你安装了Aptana Studio插件,可以在Eclipse中打开一个终端窗口),在Eclipse中右键点击主项目文件夹并刷新,所有内容都会出现。当你想调试时,设置断点,点击调试方式,选择python manage.py(之前设置的配置),当代码运行到断点时,Eclipse会切换到调试视图。

我觉得这样设置非常完美,这样我可以在命令行中正常写很多东西,但如果遇到问题,我可以打开Eclipse进行真正的调试!

希望这对你有帮助。

12

你遇到了什么问题呢?关键是为每个项目准备独立的工作空间。然后为这个工作空间选择一个Python解释器,确保它是为虚拟环境(virtualenv)创建的。这样你就可以顺利进行啦。

17

我不同意每个虚拟环境都要单独创建和维护一个工作空间,这样太麻烦了。

其实你只需要为每个虚拟环境设置一个单独的解释器,然后确保你的项目使用这个解释器就可以了。

除了你常用的解释器,比如 Python 2.5Python 2.6Python 3.1,你还可以添加一些其他的,比如 我的 Django 网站我的酷项目我的另一个酷项目——每个解释器都会有它自己的 PYTHONPATH 设置,这些设置会根据它的虚拟环境来提供。

撰写回答