Eclipse(Galileo)中的Virtualenv

25

有没有人知道如何使Eclipse(Galileo)、PyDev和Virtualenv一起工作?我特别想运行Pinax,但任何指导都可以。

我以为我做好了(甚至将所有步骤都记录在博客中,只剩下最后一步-交互式调试),但仍然没有解决方案。我具体是在OS X上操作,但任何答案都应该足够。这是我迄今为止找到的最好资源:

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


我在使用Eclipse插件方面遇到了一些麻烦,请参考:http://stackoverflow.com/questions/1150072/install-cdt-plug-in-on-eclipse-ganymede - Nathan Campos
在我的回答中,我放了所有可以帮助你的链接。谢谢! - Nathan Campos
5个回答

17

我不赞同为每个虚拟环境创建和维护单独的工作空间这样麻烦的做法。

您只需要为每个虚拟环境设置一个单独的解释器,并确保项目正在使用它即可。

除了标准解释器,如Python 2.5Python 2.6Python 3.1之外,您还可以添加一些类似于My Django WebsiteMy Cool ProjectMy Other Cool Project等的解释器--其中每个解释器都将具有其虚拟环境提供的所有PYTHONPATH条目。


我刚刚转到了TextMate,并告别了Eclipse。如果正确设置,您认为Eclipse是否值得使用? - Adam Nelson
有些人喜欢一个工具能够满足和简化他们所有的工作,而另一些人则会因为太多的可能性而感到不知所措或感到臃肿,其中很多他们觉得自己没有兴趣。你应该真正尝试投入一周时间来看看它是否适合你。 - Filip Dupanović

12

您遇到了哪些问题? 关键是为每个项目设置单独的工作区。然后选择该工作区的python解释器到为虚拟环境创建的那个解释器。那么您就可以开始工作了。


啊,这是个好主意。我现在有点忙,无法确认它 - 希望今晚能行。 - Adam Nelson

11

以下是使用Django虚拟环境与Eclipse配合的指南:

说明:这些指令适用于OSX Mountain Lion,但也应该适用于其他操作系统。我从各种来源整合了这些信息,欢迎任何建议或评论。我假设您已经在系统上安装了Python、Virtualenv和Eclipse。

打开终端,移动到您想要放置Eclipse工作区的位置,并执行以下操作:

  • mkdir projectenv
  • cd project env
  • virtualenv venv --distribute
  • source venv/bin/activate

现在,让我们安装依赖项:

  • pip install Django psycopg2 dj-database-url(您的需求可能不同)

现在,我们将启动Django项目并提交到Git;

  • django-admin.py startproject myproject
  • pip freeze > requirements.txt
  • git init; git add; git commit -m myproject(在执行此步骤之前,请确保有一个带有venv和*pyc的.gitignore文件)

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

转到“文件”、“导入”、“常规”、“现有文件夹作为新项目”,然后选择myproject文件夹,单击“完成”。您的项目现在将出现在包资源管理器中——如果尚未切换到PyDev透视图,请切换到该视图。

在包资源管理器中右键单击主myproject文件夹,向下滚动到PyDev并选择“设置为PyDev项目”。Eclipse现在会提示您设置解释器,并带您进入首选项窗口。单击“新建”,然后在/venv/bin/中选择解释器,选择Python而不是Python2.7,然后单击“确定”。

您将获得一个库列表,请将它们保留原样并单击“完成”,您将收到一个警告,但仍然单击“进行”。

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

最后,在manage.py上右键单击,选择“Run As”,选择“Run Configurations”。在“Arguments”选项卡中,输入:

  • runserver --noreload

然后点击“应用”,然后点击“关闭”。

这样就完成了。当你想添加一个应用程序时,像平常一样在命令行上使用manage.py startapp myapp(如果安装了Aptana Studio插件,则可以在eclipse中获得终端窗口),右键单击eclipse中的主项目文件夹并单击“刷新”,所有内容都会出现。当你想进行调试时,设置断点,点击“Debug As python manage.py”(之前你设置过的配置),当你遇到代码断点时,Eclipse会将你带入调试模式。

我发现这给了我完美的混合体验,这意味着我可以像平常一样在命令行上编写很多东西,但因为它在Eclipse中设置,当事情不顺利时,我可以启动eclipse并进行一些真正的调试!

希望这能有所帮助。


你知道“你会收到警告,但仍然要单击继续”的效果吗?不选择系统库有什么理由吗?如果我不选择它们,似乎程序可以正常运行,但编辑器会因为找不到系统库而产生错误。(我猜你通常不会在Eclipse中编辑文件,只进行调试?) - Neil Traft
1
非常好的回答。谢谢。 - A. K.

4

自从我升级到Helios后,我不确定Galileo是否适用。

设置Project->PyDev - Interpreter/Grammar -> Interpreter非常容易,可以根据不同的项目选择解释器。当配置解释器指向virtualenv的python解释器时,Pydev不会自动继承系统python的路径,因此用户需要选择适当的PYTHONPATH。但是您始终可以返回到首选项->Pydev->Interperter - Python -> Libraries选项卡中进行编辑。


3
根据这里的信息(以及我在尝试解决您遇到的同样问题时发现的其他信息),我整理了一篇带有逐步说明的文章here
简短的答案是,像医生所说的那样,让每个虚拟环境对应一个工作区 - 因此,当您创建一个新的前者时,您会创建一个新的后者专门用于与其配合使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接